常用的幾種排序演算法總結 良心總結,放心使用

2021-09-25 02:29:27 字數 866 閱讀 6301

//選擇排序 

void selectsort(int a,int n)

}}

//歸併排序(分治法遞迴)

void merge(int r[ ], int r1[ ], int s, int m, int t)

while(i<=m) //若第乙個子串行沒處理完,則進行收尾處理

r1[k++]=r[i++];

while(j<=t) //若第二個子串行沒處理完,則進行收尾處理

r1[k++]=r[j++];

}void mergesort(int r[ ],int s, int t)

}

//快速排序 (分治法遞迴)

int partition(int r[ ], int first, int end)

}}

//堆排序

void heapsort(int r,int n)

for(i=1;i<=n-1;i++)

}

下面是我的一些測試示例:

注意有的是閉區間,有的是開區間。

int main();

int b=;

selectsort(a,10); //1

bubblesort(a,10); //2

mergesort(a,0,9); //3 閉區間

quicksort(b,0,6); //4 閉區間

insertsort(b,7);

heapsort(a,10);

return 0;

}

幾種常用排序演算法總結

排序 強力推薦,這個算是總結的不錯的一篇文章,直接轉了 文章中的 也許有些錯誤,關於直接插入排序,第一篇已經做出了修改,其他的有時間再看 所謂排序,就是要整理檔案中的記錄,使之按關鍵字遞增 或遞減 次序排列起來。當待排序記錄的關鍵字都不相同時,排序結果是惟一的,否則排序結果不惟一。在待排序的檔案中,...

幾種常用排序演算法總結

所謂排序,就是要整理檔案中的記錄,使之按關鍵字遞增 或遞減 次序排列起來。當待排序記錄的關鍵字都不相同時,排序結果是惟一的,否則排序結果不惟一。在待排序的檔案中,若存在多個關鍵字相同的記錄,經過排序後這些具有相同關鍵字的記錄之間的相對次序保持不變,該排序方法是穩定的 若具有相同關鍵字的記錄之間的相對...

幾種排序演算法總結

注 以下所有排序演算法都是按照整數值從小到大排序。思想 對於乙個序列,走一趟把最大數冒到最後面。示例 對於序列4,10,1,6,2,7,3,8如下圖 紅框表示下一趟需要處理的子串行 即總共需要走n趟,當第i趟走完時倒數i個數是有序的。for i 0 i n i 優化 由上面的示意圖可知,當第4趟走完...