程式實現:
1.氣泡排序的程式實現:
//*program :起泡排序 *
//*content :起泡排序 *
#include <>
#include <>
#include <>
#include <>
#include <>
#define maxsize 20 //排序表的最大容量
enum bool;
typedef struct //定義排序表的結構
sqlist;
void initialsqlist(sqlist&); //初始化排序表
void bubblesort(sqlist &); //起泡排序
void printsqlist(sqlist); //顯示表中的所有元素
void main()
printf("程式執行結束!\n按任意鍵關閉視窗!\n");
getchar();getchar();
}void initialsqlist(sqlist &l)
void bubblesort(sqlist &l)}}
void printsqlist(sqlist l)
2.選擇排序的程式實現:
//*program :簡單選擇排序 *
//*content :簡單選擇排序 *
#include <>
#include <>
#include <>
#include <>
#include <>
#define maxsize 20 //排序表的最大容量
typedef struct //定義排序表的結構
sqlist;
void initialsqlist(sqlist&); //初始化排序表
void selectsort(sqlist &); //簡單選擇排序
int selectminkey(sqlist,int); //尋找最小關鍵字的記錄
void printsqlist(sqlist); //顯示表中的所有元素
void main()
printf("程式執行結束!\n按任意鍵關閉視窗!\n");
getchar();getchar();
}void initialsqlist(sqlist &l)
void selectsort(sqlist &l)}}
int selectminkey(sqlist l,int low)
sqlist;
void initialsqlist(sqlist&); //初始化排序表
void insertsort(sqlist&); //直接插入排序
void printsqlist(sqlist); //顯示表中的所有元素
void main()
printf("程式執行結束!\n按任意鍵關閉視窗!\n");
getchar();getchar();
}void initialsqlist(sqlist &l)
void insertsort(sqlist &l)
}void printsqlist(sqlist l)
排序的程式實現:
//*program :希爾排序 *
//*content :希爾排序 *
#include <>
#include <>
#include <>
#include <>
#include <>
#define maxsize 20 //排序表的最大容量
typedef struct //定義排序表的結構
sqlist;
void initialsqlist(sqlist&); //初始化排序表
void shellsort(sqlist &,int ,int);//希爾排序
void shellinsert(sqlist&,int); //一趟希爾排序
void printsqlist(sqlist); //顯示表中的所有元素
void main()
; //希爾排序增量序列,本程式採用5,3,1序列
int t=3; //希爾排序增量序列中增量的個數
程式說明
printf("本程式將演示希爾排序的操作。\n增量序列為5,3,1。\n");
while(j!='n'&&j!='n')
printf("程式執行結束!\n按任意鍵關閉視窗!\n");
getchar();getchar();
}void initialsqlist(sqlist &l)
void shellsort(sqlist &l,int dlta,int t)
}void printsqlist(sqlist l)
5.快速排序的程式實現:
//*program :快速排序 *
//*content :快速排序 *
#include <>
#include <>
#include <>
#include <>
#include <>
#define maxsize 20 //排序表的最大容量
typedef struct //定義排序表的結構
sqlist;
void initialsqlist(sqlist&); //初始化排序表
void quicksort(sqlist &); //快速排序
void qsort(sqlist &,int,int); //子串行快速排序
int partition(sqlist &,int,int); //一趟快速排序
void printsqlist(sqlist); //顯示表中的所有元素
void main()
printf("程式執行結束!\n按任意鍵關閉視窗!\n");
getchar();getchar();
}void initialsqlist(sqlist &l)
void quicksort(sqlist &l)
void qsort(sqlist &l,int low,int high)
//樞軸記錄到位
return low; //返回樞軸記錄
}void printsqlist(sqlist l)
排序演算法總結
常見的排序方式有6種 簡單排序裡面的有 插入排序 選擇排序 氣泡排序,時間複雜度為o n 2 線性對數階的排序 歸併排序 merge sort 快速排序,堆排序,時間複雜度為o nlogn 在n 50的情況下,最好使用插入排序或者選擇排序,由於選擇排序移動次數比插入排序少,在資料量比較多的情況,推薦...
排序演算法總結
按平均時間將排序分為四類 1 平方階 o n2 排序 一般稱為簡單排序,例如直接插入 直接選擇和氣泡排序 2 線性對數階 o nlgn 排序 如快速 堆和歸併排序 3 o n1 階排序 是介於0和1之間的常數,即0 1,如希爾排序 4 線性階 o n 排序 如桶 箱和基數排序。各種排序方法比較 簡單...
排序演算法總結
熱2已有 2573 次閱讀 2009 09 01 13 23 填問卷贏好書華章讀者調研活動結果公布 一 選擇排序 1.基本思想 每一趟從待排序的資料元素中選出最小 或最大 的乙個元素,順序放在已排好序的數列的最後,直到全部待排序的資料元素排完。2.排序過程 示例 初始關鍵字 49 38 65 97 ...