選擇排序演算法與氣泡排序演算法有何異同啊?

2025-01-01 03:15:20 字數 1948 閱讀 5245

1樓:頓金生才癸

區別在於:在交換的方式上。

冒泡演算法,每次比較如果發現較小的元素在後面,就交換兩個相鄰的元素。

而選擇排序演算法的改進在於:先並不急於調換位置,先從a[1]開始逐個檢查,看哪個數最小就記下該數所在的位置p,等一躺掃瞄完畢,再把a[p]和a[1]對調,這時a[1]到a[10]中最小的資料就換到了最前面的位置。

所以,選擇排序每掃瞄一遍陣列,只需要一次真正的交換,而冒泡可能需要很多次。比較的次數一樣的。例如:1

4我們分別用a[0],a[1],a[2],a[3]儲存。假設從大到小排序。

選擇排序,是a[0]和a[1],a[2],a[3]依次比較,遇到小的就交換,這樣一次下來,最大的被儲存在了a[0].下次排序就從a[1]開始重複以上步驟。

氣泡排序,是a[0]和a[1]比較,小的就交換。然後a[1]和a[2]比較,小的交換。然後a[2]和a[3]比較小的就交換。

這樣一次下來,最大的被儲存在a[0]。下次排序從a[1]開始重複以上步驟。

雖然差不多,但是請注意:兩者的比較方法是右差別的,乙個事依次比下來,乙個是倆倆比較。

擴充套件資料:氣泡排序的基本思想是將陣列中的每個相鄰元素進行兩兩比較,按照小元素在前(或大元素在前)的原則確定是否進行交換。這樣每一輪執行之後,最大(或最小)的元素就會被交換到了最後一位。

同樣的過程會依次進行,直到所有元素都被排列成預期的順序為止。這個過程是不是很像是水中的起泡乙個個冒起來的過程。

選擇排序(select

sort):每一趟從待排序的資料元素中選出最小(或最大)的乙個元素,順序放在已排好序的數列的最後,直到全部待排序的資料元素排完。

選擇排序是不穩定的排序方法。

選擇排序和氣泡排序有什麼區別

2樓:蒲小娟

選擇排序與氣泡排序區別:

1、氣泡排序是左右早高兩個數相比較,而選擇排序是用後面的數和每一輪的第乙個數相比較;

2、氣泡排序每輪交換的次數比較多,而選擇排陸友尺序每輪只交換一次;

3、氣泡排序是通過數去找位置,選擇排序是給定位置去找數;

4、當乙個陣列遇到相同的數時,氣泡排序相對而言是穩定的,而選擇排序便不穩定;

5、在時間效率上,選擇排序優於氣泡排序。

選擇排序和告扮氣泡排序的概念:

氣泡排序:依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟:

首先比較第1個和第2個數,將小數放前,大數放後,然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。至此第一趟結束,將最大的數放到了最後。在第二趟:

仍從第一對數。

開始比較。<>

選擇排序:第一次從下標為0的開始下標為0的這個數與後面的n到1個進行比較;找出最小或者最大的放在下標為0的這個位置;第二次從下標為1的開始比較;查詢剩下的最大或者最小值;放在下標為1的位置;以此類推;直到排序完成。

排序演算法之直接插入排序和氣泡排序

3樓:戶如樂

直接插入排序是個穩定的排序演算法,適用於關鍵碼n較小,在已知關鍵碼基本有序情況(最好的情況,時間複雜度為0(n),只比較元素n-1次,不移動元素),最壞的情況下時間複雜度為0(n^2),比較元素次數為n(n-1)/2,移動元素次數為(n+3)

n -2)/2,空間複雜度為0(1)

下面實現直接插入排序(遞增序列)

氣泡排序也是乙個穩定的排序,在待排關鍵碼基本有序的情況下,只需要(n-1)次比較,不需要交換元素(o(n),1趟排序),關鍵碼逆序的情況下,需要n(n-1)/2次比較,關鍵碼n(n -1)/2次交換(o(n^2),n-1趟排序)

氣泡排序的實現(遞增序列):

直接插入排序和氣泡排序,時皮圓笑間複雜度和空間複雜度腔敏相同,但直接插入排序關鍵碼移動次數明顯比氣泡排序少,實際應用直接插入排序更燃含加有效,更廣。

寫排序的幾種演算法,簡單選擇排序,直接插入排序,氣泡排序,詳細點

樓主留郵箱吧,我給你發過去 插入 void insert sort int a,int n 冒泡 int bubble sort int a,int n 選擇 int select sort int a,int n tmp min a min i a i a i tmp 選擇排序演算法與氣泡排序演算...

寫出氣泡排序選擇排序插入排序歸併排序快速排序在最壞最壞及平均情況下的時間複雜度

氣泡排序,選擇排序,插入排序一般情況下要經過兩次迴圈,每次迴圈必須經歷時則需要o n 2 而歸併排序,快速排序則是o n log2 n 而最壞情況下,快速排序會變成o n 2 其餘不變 優化除外 望採納!以下排序演算法最壞情況下時間複雜度最低的是 a.氣泡排序 b.插入 c.選擇 d.快排 在氣泡排...

在下列排序演算法中,哪演算法的時間複雜度與初始排序無關

d不管原陣列是什麼樣子,每一次你都要遍歷一邊剩餘的數來選取最大 最小值 演算法的時間複雜度與初始排序無關的都有什麼排序 常見的幾種排序演算法複雜度如下 方式 平均 最壞 最好 插入 n 回2 n 2 n 希爾 n 1.3 冒泡 n 2 n 2 n 快速 nlogn n 2 nlogn 選擇 n 2 ...