各種排序演算法彙總 #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 ...