排序的演算法

2022-11-19 05:18:04 字數 3143 閱讀 1355

程式實現:

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 ...