《五种排序的算法(包括主函数调用)》由会员分享,可在线阅读,更多相关《五种排序的算法(包括主函数调用)(5页珍藏版)》请在金锄头文库上搜索。
1、#include #define MAX 100 void Bubblesort(int r,int n); void StraInsSort(int R,int n); void Selectsort(int r,int n); /*主函数* int main() int s,ch,n,x,i; int aMAX; int p; printf(“请输入待排序列中数据的个数:“); scanf(“%d“, printf(“请输入排序前序列:“); for(s=1;s1;i-)exchange=0; /*设交换标志位,exchange=0 表示未 交换*/for(j=1;jsj+1)a=sj;s
2、j=sj+1;sj+1=a;exchange=1; /*已交换,设 exchange=18/ /* exchange=0 表示未进行交换, 此时即可退出循环*/if(!exchange) break; /*快速排序* void Quicksort(int d,int min,int max) int head,tail; int t; if(min=t) tail-; /*将比支点记录小的记录移到前端*/ if(headtail) dhead+=dtail; while(headtail /*将比支点记录打的记录移到高端*/ if(headtail) dtail-=dhead; dhead=t
3、; Quicksort(d,min,head-1); /*对左端分区域进行快速排序*/Quicksort(d,tail+1,max); /*对右端分区进行快速排序*/ /*选择排序* void Selectsort(int x,int n) /*对数组 X 进行简单选择排序*/ int i,j,a,index; for(i=1;i=n;i+) index=i; /*初始化第 i 趟排序的最小记录指针*/ for(j=i+1;j=n;j+) /*搜索关键字最小的记录位置*/if(xjxi) index=j; if(i!=index) a=xi;xi=xindex;xindex=a; /*与第 I 个记录交换*/