簡單選擇排序和氣泡排序

2021-08-03 08:34:50 字數 1340 閱讀 1685

關於排序,氣泡排序和簡單選擇排序應該是最簡單的排序了

排序過程:從小到大排序
比較第乙個與第二個數,若a[0]>a[1], 則交換; 然後比較第二個數和第三個數; 以此類推, 直到第n-1個數和第n 個數比較為止 ( 第一趟氣泡排序結束 ,陣列中最大的數被排在了最後 ) 。

對前n-1個個數進行氣泡排序,結果是次大的數排在第n-1個元素位置。

重複上述步驟,一共經過n-1次氣泡排序後,排序完成

這個演算法的名字由來是因為越大的元素會經由交換慢慢「浮」到數列的頂端,故名氣泡排序。

排序過程:從小到大排序

1. 有乙個長度為n的陣列,先經過n-1次比較,找出n個數中最小的數將它與陣列的第乙個元素交換——-第一次選擇排序結束,並且將最小的數安放在第乙個陣列元素的位置。

2. 在通過n-2次比較,從剩餘的n-1個數中找出最小的數將它與陣列的第二個元素交換——–第二次排序結束。

3. 重複上述步驟,經過n-1次排序後,排序完成。

例:一直乙個陣列 a [5]=, 請將它從小到大排序。
程式

#include

int main(int argc, const

char *argv)

; int i,j;

int temp;

for(i = 0;i < 4;i ++)}}

for(i = 0;i < 5;i ++)

printf("\n");

return

0;}

解析:

開始:3,2,5,1,4

第一次:2,3,1,4,5

第二次:2,1,3,4,5

第三次:1,2,3,4,5

第四次:沒有交換

程式:

#include

int main(int argc, const char *argv)

; int min,index,temp;

int i,j;

for(i = 0;i < 4;i ++)

}temp = a[i];

a[i] = a[index];

a[index] = temp;

}for(i = 0;i < 5;i ++)

printf("\n");

return

0;}

解析:

開始:3,1,5,2,4

第一次:1,3,5,2,4

第二次:1,2,3,5,4

第三次:沒有交換

第四次:1,2,3,4,5

氣泡排序and簡單選擇排序

在第一趟排序中,從第乙個元素開始,掃瞄整個待排序元素序列,若相鄰的兩個元素逆序,則交換位置。直到最後乙個元素,此時,最後乙個元素必為最大的元素。第二趟排序,依然從第乙個元素開始掃瞄直到倒數第二個元素。第三趟排序,從第乙個掃瞄到倒數第三個。直到只剩乙個元素需要掃瞄。程式如下 includeint ma...

排序之路 氣泡排序和簡單選擇排序

以前上大學,沒有好好跟老師一起學習教材裡晦澀難懂的那些演算法。如果上天在給我一次機會,我一定。屁話,言歸正傳。氣泡排序 氣泡排序,這個名字就能想象到開水沸騰的場景,泡泡從下到上冒起,實則該排序也是有這個 冒泡 的過程。我們來看乙個陣列 arr 2,0,1,9,12,31,8,30 利用氣泡排序實現從...

氣泡排序和簡單選擇排序實現

氣泡排序演算法的運作如下 從後往前 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較...