選擇排序與氣泡排序

2021-09-25 16:40:27 字數 1118 閱讀 9150

我們的的陣列常常是無序的,如何對陣列排序也是我們必須要掌握的。排序的方法也有很多種,在這裡我們介紹一下氣泡排序法。

氣泡排序的基本思路:假設要被排序的陣列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...