最近看資料結構,把常用的排序演算法用c語言寫了一下。
沒有按資料結構上的定義sqlist結構體,只是用陣列的形式實現。
有的演算法並沒有完全按書上給出的演算法,但思路一致。
#includevoid insertsort(int, int); //直接插入排序 無哨兵
void binsertsort(int, int); //折半插入排序
void bubblesort(int, int); //起泡排序
void qsort(int, int, int); //快速排序
void selectsort(int, int); //簡單選擇排序
int main();
int num = ;
//int num = ; //快排使用
int i;
int len = 10;
//insertsort(num, len);
//binsertsort(num, len);
//bubblesort(num, len);
//len = 7;
//qsort(num, 0, len-1);
//selectsort(num, len);
for(i=0; i0; j--)
else
} num[j] = temp; }}
//折半插入排序
void binsertsort(int num, int len)else
mid = (low + high)/2;
} //二分查詢完成後,low會指向應插入的位置
for(j=i; j>=low; j--)
num[low] = temp; }}
//起泡排序
void bubblesort(int num, int len)
} }}//快速排序
int partition(int num, int low, int high)
{ //一趟快排,返回樞軸位置
int temp = num[low];
while(low < high)
{ while(low= temp) --high;
num[low] = num[high];
while(low[minvaluetag];
void selectsort(int num, int len){
int i, j, minvaluetag, temp;
for(i=0; i。
《資料結構(c語言版)》 嚴蔚敏 吳偉民 著 清華大學出版社
幾種常用排序演算法的C語言實現
重溫資料結構,順手寫下幾種常用的排序演算法,以備查詢。cpp view plain copy print?include include include include include include void print int a,int n printf n return 直接插入排序,時間複...
排序演算法(C語言實現)
本文共介紹了7種排序演算法 參考文章 1.1 基本思想 依次向後兩兩相鄰比較,大的向後移 1.2 示例 void bubblesort int a,int n 2.1 基本思想 從無序佇列中選擇最小值,放置到有序佇列的末尾 2.2 示例 void selectsort int a,int n a j...
常用排序演算法Java語言實現
演算法原理 1.比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。2.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。3.針對所有的元素重複以上的步驟,除了最後乙個。4.持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。實現 ...