Shell排序 C C

2022-03-01 08:47:02 字數 879 閱讀 2813

shell排序

shell排序是大量資料需要排序時,更為高效的插入排序。它的演算法思想基於插入排序的演算法思想

流程:(1)將n個元素陣列分成n/2個數字序列,第一個資料和第n/2個資料為一對,等等,以此類推

(2)一次迴圈使每一個數對排列好順序

(3)變成n/4個數對,再次排序。

(4)不斷重複上述過程,隨著序列減少直至最後變為1個,完成排序。

具體如何怎麼排的可以執行**檢視每一步排序。

1 #include2 #include3 #include4

using

namespace

std;

5void shellsort(int *a,int

len)

619 a[j+r]=t;

20 x++;

21 cout<<"

sort result after

"<"

step

"; //

輸出每一步排序結果

22for (int k = 0; k < len; k++) cout<"";

23 cout<2526}27

28}29int

main()

3042 cout<43 shellsort(a,n

);44 cout<<"

array after sorting:

"輸出排序後的陣列

45for (int i = 0; i < n; i++) cout<"";

46 cout<47return0;

4849 }

快速排序 C C

快排演算法 快排和冒泡都是基於交換的思想,但是進行了改進,更為高效。 流程 1 首先設定一個分界值,通過分界值將陣列分成左右兩部分。 2 將...

C 氣泡排序

交換排序的基本思想是 兩兩比較待排序記錄的關鍵字,發現兩個記錄的次序相反時即進行交換,直到沒有反序的記錄為止。 應用交換排序基本思想的主要排...

C 氣泡排序

氣泡排序 bubblesort 的基本概念是 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即首先比較第1個和第2個數,將小數放前,大...