演算法之旅 氣泡排序及選擇排序

2021-06-22 21:04:24 字數 884 閱讀 6819

氣泡排序和選擇排序是排序演算法中比較簡單的兩種演算法。

氣泡排序的思想是:

比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對,針對所有的元素重複以上的步驟,這樣每次參與比較的元素就越來越少,直到沒有任何一對數字需要比較。對n個數字進行氣泡排序,需要進行n-1趟比較,第i趟中需要進行n-i次比較。由於氣泡排序中每趟都重複比較了很多元素,導致此演算法的時間效率不是很高,其平均時間複雜度為o(n*n).

這裡給出乙份氣泡排序的參考**:

//description:氣泡排序

//author:hust_luojun

//data:2014_7_22

#include using namespace std;

int main()

; cout<<"the origin arrary is:"}

}

選擇排序是從第乙個數開始,將這個數與它後面的每個數比較,若該數比後面的數都小,則不交換,它留在原位置:若該數比後面的數大,則找出它後面數中最小的那個數,使之與其交換,這樣最小的數就跑到前面來了,以此類推,n個數需進行n-1趟比較。選擇排序的時間複雜度也為o(n*n),效率也不高,在實際應用中,較少選擇氣泡排序和選擇排序,因為還有時間複雜度更好的排序演算法,我們只需要了解這兩種演算法的思想即可。這裡給出衣服呢選擇排序的**,共大家參考

//description:選擇法排序

//author:hust_luojun

//data:2014_7_22

#include using namespace std;

int main()

; cout<<"the origin arrary is:"<

氣泡排序及選擇排序

對一組元素進行氣泡排序,從左向右或從右向左排序,每次對相鄰兩個數進行比較,根據自己需求 公升序或者降序 決定是否調整順序。每次完成一次冒泡,都在未排序列中會產出乙個最大或最小值並將該值確定位置 1.如果是將序列從右向左兩兩比較,那麼每次冒出的最大數或者最小數將出現在最左邊 在未排序的序列前面 2.如...

排序演算法 氣泡排序 選擇排序

1 氣泡排序 這個氣泡排序的原理就像水裡的魚吐泡泡一樣,起初是小一點的泡泡,然後越來越大,最後的最大。演算法描述 1 設待排序序列中的記錄的數為n 2 一般的,第i趟起泡排序從1到n i 1 3 依次比較相鄰兩個記錄的數字,如果發生逆序,則交換 4 其結果是這n i 1個記錄中,關鍵字最大的記錄被交...

排序演算法 冒泡 選擇排序

思路 1.從頭開始比較每一對相臨的元素,其後者比前者大則交換,直到一輪比較結束 2.排除1中找到最大的元素,重複1的步驟 class bubblesort 如果在某一趟比較後,序列就變得完全有序,此時就沒有必要再繼續比較下去 func sort2 if sorted 如果數列在尾部已經有序 部分有序...