我們的的陣列常常是無序的,如何對陣列排序也是我們必須要掌握的。排序的方法也有很多種,在這裡我們介紹一下氣泡排序法。
氣泡排序的基本思路:假設要被排序的陣列arr[0…n-1]是垂直放置的,我們將其中的每個元素都看成重量為arr[i]的氣泡。那麼,根據常識,我們知道重量輕的氣泡會向上冒。所以我們制定輕氣泡不能在重氣泡下的原則。現在,我們從下向上掃瞄陣列arr[n]中的每個元素,凡是發現違反本原則的輕氣泡,就使其向上「冒」,反覆的執行這個過程,直到所有元素都滿足該原則。
冒泡演算法原理:
比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
/*
* 氣泡排序:
*1.相鄰的兩個數字來比較大小,小的數字排在前面,大的排在後面
*2.外層迴圈是控制比較多少輪(n-1)
*3.內層迴圈是控制比較多少次(n-1-i)
*//*
* 使用冒泡演算法對陣列排序
int number =new[10]
*/public class demo ;
//外層迴圈比較多少輪
for (int i = 0; i < number.length; i++) }}
//遍歷輸出
for (int i = 0; i < number.length; i++)
}
演算法描述:對於給定的一組記錄,經過第一輪比較後得到最小的記錄,然後將該記錄與第乙個記錄的位置進行交換;接著對不包括第乙個記錄以外的其他記錄進行第二輪比較,得到最小的記錄並與第二個記錄進行位置交換;重複該過程,直到進行比較的記錄只有乙個時為止。
/*
* 選擇排序:
*/public class demo ;
for (int i = 0; i < array.length; i++)
}if(k!=i)
} //遍歷輸出
for (int i = 0; i < array.length; i++)
}
排序 氣泡排序與選擇排序
最近複習大學學過的演算法,這裡做個筆記。排序,我們學過 這裡需要了解什麼是時間複雜度,什麼是空間複雜度。簡單而言,時間複雜度指執行的次數,空間複雜度指消耗的記憶體。它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果順序 如從大到小 首字母從z到a 錯誤就把他們交換過來。走訪元素的工作是重複地...
選擇排序與氣泡排序
今早心血來潮,又想看看氣泡排序.於是乎度娘一番,找到了度娘給我的這篇文章,前面的文字描述還是簡單易懂的,可惜給出的 示範有些文不對題.於是乎又wiki一番.發現上文給出的 形似選擇排序,於是總結如下 我們假設有乙個陣列 624159 對應的索引也就是 0 5,如果我想描述第二個位置,也就是數字2的位...
選擇排序與氣泡排序
選擇排序 static void sort1 int arr var temp arr i arr i arr min arr min temp 氣泡排序 static void sort2 int arr static void main string args sort1 arr foreach...