排序 氣泡排序 快速排序

2021-10-10 22:32:07 字數 1285 閱讀 1809

1、基本思想:將第乙個記錄的關鍵字與第二個記錄的關鍵字比較,若為逆序,則將兩個記錄交換,再向後比較。關鍵字小的漂浮,關鍵字大的下沉。

2、穩定性:演算法穩定。

3、時間複雜度:o(n²),空間複雜度:o(1)

4、**實現:

#include

#define n 5

/*陣列長度上限*/

intmain()

printf

("氣泡排序結果為:\n");

for(i=

0;i)printf

("%d\t"

,a[i]);

return0;

}

1、基本思想:①從數列中取乙個數作為基準數(樞軸)。②比基準數大的放右邊,小於等於的放左邊。③重複第二步至各區間只有乙個數,達到整個序列有序。

2、具體操作:假設樞軸關鍵字為pivotkey,附設兩個指標low和high,初值分別為s和t。將樞軸記錄移至臨時變數,若high≥pivotkey,則high減1(符合劃分區間,進一步縮小範圍),否則將high所指關鍵字移至low所指位置(將不符合的關鍵字移至正確區間)。當high所指不符合要求後檢測low所指記錄,若low≤pivotkey,則low增1,否則將low所指關鍵字移至high所指位置。重複進行兩個方向的檢測,直至high與low兩個指標指向同一位置重合為止。

3、樞軸元素的選取:通常選取第乙個元素。可選:首元素、尾元素、中值元素(首元素、尾元素、中間位置元素三者中中間大小的那個元素)、隨機元素。

4、穩定性:不穩定

5、時間複雜度:平均o(n lb n)

6、**實現:

#include

#include

#define max 100

int array[max]

;void

fastsort

(int n,

int min,

int max)

//快速排序

array[head]

=t;fastsort

(n,min,head-1)

;fastsort

(n,tail+

1,max);}

}void

main()

fastsort

(count,

0,count-1)

;printf

("快速排序結果為:\n");

i=0;while

(iprintf

("\n");

}

排序 氣泡排序 快速排序

快速排序 氣泡排序就是自上向下依次對比兩個數字,若上面的數字大於下面的數字,則兩者交換,否則不交換。這樣每次迴圈結束,未排序的最大的數就到了最下面。如陣列前兩次迴圈過程如下 快速排序的核心是partition 函式,其功能如下所示 34的位置找到後,其將陣列分成兩部分,前一部分都比34小,後一部分都...

排序(氣泡排序 快速排序

關於排序的穩定性 在待排序的記錄序列中,存在多個具有相同的關鍵字的記錄,若經過排序,這些記錄的相對次序保持不變,即在原序列中r i r j 且r i 在r j 之前,而在排序後的序列中,r i 仍在r j 之前,則稱這種排序演算法是穩定的 否則稱為不穩定的。一 氣泡排序 氣泡排序的基本思想 每次比較...

氣泡排序,快速排序

氣泡排序 氣泡排序 英語 bubble sort 是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。...