選擇排序VS氣泡排序

2021-07-22 17:19:42 字數 1351 閱讀 9917

選擇排序:每次選擇當前最小或者最大的數字置與相應的位置進行交換,最好即完成排序,它是對氣泡排序的一種優化;

氣泡排序:也會選擇當前的最大或者最小的數到相應的位置,但是他每次都是兩兩交換,就像氣泡一樣慢慢的將數公升上去

區別:兩者的過程不一樣,選擇採用標記來標記當前的需要交換的位置,最後只需要交換一次,一次選擇交換一次

相同點:兩者思想一樣,都是冒泡,但是選擇是一口氣飛上去,冒泡是慢慢公升上去;

總結,選擇是對冒泡的一種優化

氣泡排序的**

選擇排序的**:

public

class maopaopaixu ;

for (int i = 0; i < array.length; i++)

system.out.println();

maopao(array);

for (int i = 0; i < array.length; i++)

system.out.println();

}public

static

void maopao(int array)}}

system.out.println("交換的次數:"+count);

}}結果:16

8452

3 交換的次數:1212

3456

8

public class xuanzepaixu ;

for (int i = 0; i < array.length; i++)

system.out.println();

xuanze(array);

for (int i = 0; i < array.length; i++)

system.out.println();

}/**

* 遍歷一遍,找出最小的放在第一位,和第一位交換

* @param a

*/private static void xuanze(int array)

}//找到最小的下標直接交換即可

temp = array[i];

array[i] = array[min];

array[min] = temp;

count++;

}system.out.println("交換的次數:"+count);

}} 結果:

1 6 8 4 5 2 3

交換的次數:6

1 2 3 4 5 6 8

選擇排序vs氣泡排序

氣泡排序 最小時間複雜度n,最差複雜度為 n 2,使用兩層迴圈實現,依次將陣列裡的每個元素,與其他元素比較,只要大於當前正在比的元素就交換兩者 實現 function bubble arr if sorted break return arr 選擇排序 穩定,時間複雜度無論如何都是o n 2 具體實...

選擇排序,氣泡排序,雙向氣泡排序

氣泡排序和選擇排序是最基本的排序方式,要掌握。氣泡排序重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。選擇排序每一趟從待排序的 資料元素 中選出最小 或最大 的乙個元素,順序放在已排好序的數列的...

選擇排序,氣泡排序,雙向氣泡排序

首先是選擇排序,原理 1 找到未排序的數中最小的數放到最前面 2 陣列後移一位 3 重複上面兩部。void selectsorting if min a i swap b i b t 這個應該是我第乙個接觸到的排序演算法,結果第一次打排序水題直接上冒泡,直接接了一發tle 才知道有nlogn的演算法...