主要都是教材上的**,只是用到了time.h庫函式以及其中的clock_t類
#include#include#includeusing namespace std;
templatevoid swap(t &a,t &b)
templatevoid selectsort(t a,int n) //簡單選擇排序
templatevoid gqsort(t a,int left,int right) //改進的快速排序
templatevoid merge(t a,int i1,int j1,int i2,int j2) //兩路合併排序
while (i<=j1)
temp[k++]=a[i++];
while(j<=j2)
temp[k++]=a[j++];
for(i=0;ivoid mergesort(t a,int n)
size*=2; }}
int main()
cout
selectsort(a,n);
cout<<"經過簡單選擇排序後的序列為:"
totaltime=(double)(finish - start)/ clocks_per_sec;
cout<<"開始時間為:"
insertsort(b,n);
cout<<"經過直接插入排序後的序列為:"
totaltime=(double)(finish - start)/ clocks_per_sec;
cout<<"開始時間為:"
bubblesort(c,n);
cout<<"經過氣泡排序後的序列為:"
totaltime=(double)(finish - start)/ clocks_per_sec;
cout<<"開始時間為:"
quicksort(d,n);
cout<<"經過快速排序後的序列為:"
totaltime=(double)(finish - start)/ clocks_per_sec;
cout<<"開始時間為:"
mergesort(e,n);
cout<<"經過兩路合併排序後的序列為:"
totaltime=(double)(finish - start)/ clocks_per_sec;
cout<<"開始時間為:"
gquicksort(f,n);
cout<<"經過改進後的快速排序後的序列為:"
totaltime=(double)(finish - start)/ clocks_per_sec;
cout<<"開始時間為:"
delete b;
delete c;
delete d;
delete e;
delete f;
return 0;
}
各種內排序演算法效能比較
各種內排序演算法效能比較 個人總結 穩定性最好情況 最壞情況 平均空間複雜度 確定最終位置 簡單選擇排序 屬於選擇排序 不穩定o n n 1趟 o n n 1趟 o n n 1趟 o 1 一趟排序後能確定某個元素的最終位置 直接插入排序 穩定o n n 1趟 o n n 1趟 反向有序 o n n ...
各種內排序演算法的實現及效能的比較
實驗一 實現順序表的簡單選擇排序 直接插入排序 氣泡排序 快速排序 兩路合併排序及堆排序。簡單選擇.h includetemplate void selectsort t a,int n 直接插入.h include 直接插入排序 template void insertsort t a,int n...
各種排序演算法的時間效能比較
include include using namespace std 氣泡排序 原理 1 比較相鄰的前後二個資料,如果前面資料大於後面的資料,就將二個資料交換。2 這樣對陣列的第0個資料到n 1個資料進行一次遍歷後,最大的乙個資料就 沉 到陣列第n 1個位置。3 n n 1,如果n不為0就重複前面...