幾大常用的排序演算法一

2021-09-11 18:27:54 字數 991 閱讀 1243

1.桶排序

桶排序很簡單,假如現在有10個數,需要對它們進行排序,首先我們就建立乙個大小為10的陣列來代表10個桶,然後將這10個數遍歷一遍,這個數是幾就放入第幾個桶中,最後將所有桶遍歷一遍,將桶中的數輸出即可

下面來乙個例項,第一行輸入要排序的數的個數,第二行輸入具體的數值,最後輸出排序過後的數

具體**如下:

#includeusing namespace std;

int book[1001];

int main()

for(int i=0;i<1000;i++)

for(int i=1;i<=n-1;i++)}}

for(int i=1;i<=n;i++);

int main()

for(int i=1;i<=n-1;i++)

}} for(int i=1;i<=n;i++)

temp=a[left]; //基準數

i=left;

j=right;

while(i!=j)

quicksort(1,n);

for(int i=1;i<=n;i++){

cout《講解一下**的實現思路:

假設這裡有一組要進行快速排序的數:6  1  2  7  9  3  4  5  10  8

以第乙個數6為基準數,然後從左右邊往左出發,直到找到乙個比基準數小的數停下來,然後再從左往右出發,直到找到乙個比6大的數停下來,如果此時從右往左和從左往右還沒有相遇的話,就交換兩個位置的數,直到相遇位置,這時候相遇的位置就是基準數需要交換的位置,然後對歸位後的6的左邊和右邊的數遞迴呼叫即可

快速排序之所以快,是因為相比於氣泡排序,每次交換都是跳躍式的,每次排序的時候設定乙個基準點,將小於等於基準點的都放到基準點的左邊,大於等於基準點的都放到基準點的右邊,這樣總的交換和比較次數就變少了,速度自然就提高了

快速排序的最差情況下的時間複雜度是和和氣泡排序一樣,o(n2),平均時間複雜度為o(nlogn),

scala實現幾大排序演算法

packagesort created by legotime on 2016 5 14.classscalasort resultlist 排序演算法 implicit def listtoarray list1 list int list1 toarray implicit def arrayt...

java常用排序演算法 一

氣泡排序演算法 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。相同元素前後順序並沒有改變,所以氣泡排序是一種穩定排序演算法 總結 每次判斷大的放到最後...

幾種常用排序演算法 一

八大常用排序演算法詳細分析 包括複雜度 排序有可以分為以下幾類 1 交換排序 氣泡排序 快速排序 2 選擇排序 直接選擇排序 堆排序 3 插入排序 直接插入排序 希爾排序 4 歸併排序 5 基數排序 桶排序 顧名思義,氣泡排序就是用氣泡從下往上冒的原理,將氣泡 較小或較大的數 依次往前移。具體做法 ...