插入,歸併,希爾,快排,基數排序的C 實現

2021-10-01 08:43:02 字數 1427 閱讀 6998

#include

#include

#include

using

namespace std;

typedef

long

long ll;

const

int maxn=

5e5+5;

int n;

int a[maxn]

;int temp[maxn]

;int dt[maxn]

;ll num=0;

void

insertsort

(int a)

//直接插入排序}}

void

tempininsertsort

(int a)

//折半插入排序

for(

int j=i-

1; j>=high+

1; j--

) a[j+1]

=a[j]

; a[high+1]

=a[0];

}}歸併排序

void

mergesort

(int a,

int start,

int end)

}while

(p<=mid) temp[i++

]=a[p++];

while

(q<=end) temp[i++

]=a[q++];

for(

int j = start ; j <= end; j++

)//將temp中排好序的元素複製到a中

a[j]

= temp[j];}

//return num; // 獲得陣列的逆序數

}//希爾排序

void

shellinsert

(int a,

int dk)

//相差dk的每一組排序}}

void

shellsort

(int a,

int dt,

int t)

//dk陣列的選取

void

shelldt

(int n_)

//根據陣列大小對dk陣列的初始化

}///快速排序

intpartition

(int a,

int low,

int high)

a[low]

=a[0];

return low;

}void

qsort

(int a,

int low,

int high)

}基數排序

void

distribute()

;int

main()

排序詳解(希爾,快排,歸併等)

今天集中把幾種排序的方法列一下,當然最出名的希爾,快排,歸併和其優化當然也是滿載 說到希爾排序的話,不得不先提到的就是插入排序了,希爾排序就是對直接插入排序的一種優化,下面就是直接插入排序的思想 直接插入排序 這就是直接插入排序的 思想很簡單,也很簡單 為什麼希爾排序比直接插入排序更加優化呢?當需要...

常用排序演算法 希爾,歸併,快排

public static comparable void shellsort t arr while h 1 h h 3 public class 歸併排序 對兩個有序序列進行合併 param arr param low param mid param high param temp privat...

冒泡,快排,插入,希爾,選擇,歸併演算法

演算法,根據資料的樣子,進行做計算。爭取在固有資料的基礎上,達到計算次數 記憶體占用最少的運算方式。現將集中演算法歸納如下 演算法名稱 演算法概要 冒泡挨個拿陣列的元素和後面的做比較,發現大小不對,則交換位置,這樣導致按照座標向後運算,座標資料是一定有序的,相對後面最大或最小 快排拿乙個陣列,向前查...