各種排序演算法彙總

2021-06-03 00:42:17 字數 1569 閱讀 6682

各種排序演算法彙總 #include

#include

#include

#include

using namespace std;

template

void insertsort(t a,int n)//直接插入排序,時間複雜度為o(n^2)

a[j+d]=temp;

}//這個while實際上是直接插入排序

d>>=1;//即d右移一位,d除以2;

}}//shellsort

template

void bubblesort(t a,int n)//氣泡排序,時間複雜度為o(n^2)}}

}/**//快速排序,時間複雜度為o(nlog2n)///

template

int partion(t a,int i,int j)//劃分函式

/**/quicksort_o(nlog2n)

template

void selectsort(t a,int n)//選擇排序,時間複雜度為o(n^2)

}/**//heapsort_o(nlog2n)///

///歸併排序,時間複雜度o(nlog2n)/

template

void merge(t sr,t tr,int l,int m,int n)

}template

void mergesort(t a,int n)

/**///mergesort_o(nlog2n)///

/end_template_by_abilitytao_acm//

int main ()

;insertsort(test1,sizeof(test1)/sizeof(double));

double test2=;

shellsort(test2,sizeof(test2)/sizeof(double));

double test3=;

bubblesort(test3,sizeof(test3)/sizeof(double));

double test4=;

quicksort(test4,sizeof(test4)/sizeof(double));

double test5=;

selectsort(test5,sizeof(test5)/sizeof(double));

double test6=;

heapsort(test6,sizeof(test6)/sizeof(double));

double test7=;

mergesort(test7,sizeof(test7)/sizeof(double));

return 0;

}寫這些函式的過程中我遇到了乙個奇怪的問題,就是merge這個函式前不能使用上模板類,如果將它改為:

template

void merge(t sr,t tr,int l,int m,int n)

編譯器竟然會報錯,不知道是怎麼回事,希望各位大牛指點一下。

呵呵 問題已經解決,原來在c++標準庫裡面已經使用過merge這個關鍵字,只要將merge改為merge便可通過編譯了。

java各種排序方法彙總

2.選擇排序 3.插入排序 4.歸併排序 5.快速排序 public class demoarr1 int temp for int i 0 i arr.length 1 i 迴圈遍歷輸出 for int a arr public class demoarr11 scanner superman n...

排序演算法 排序演算法彙總

排序演算法無疑是學習資料結構中的重點內容,本文將給出排序演算法的彙總。下面是具體的實現 include include include define n 1000000 int array n int temp n 1 氣泡排序 void bubblesort int a,int n if tag ...

排序演算法 排序演算法彙總

排序演算法無疑是學習資料結構中的重點內容,本文將給出排序演算法的彙總。下面是具體的實現 include include include define n 1000000 int array n int temp n 1 氣泡排序 void bubblesort int a,int n if tag ...