各種內排序演算法的實現及效能比較

2021-07-09 03:26:45 字數 1744 閱讀 7437

主要都是教材上的**,只是用到了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就重複前面...