您好,欢迎来到宝玛科技网。
搜索
您的当前位置:首页C语言版数据结构 快速排序 -

C语言版数据结构 快速排序 -

来源:宝玛科技网
4.快速排序 详细设计

#include #include #include

#define Max_Size 5000

typedef int KeyType; typedef int OtherType; typedef struct { KeyType key;

OtherType other_data; }RecordType;

int QKPass(RecordType r[],int low, int high ) //对记录数组r[low..high]用快速排序算法进行排序*/ { }

void QKSort(RecordType r[],int left,int right) {

if(leftint pivot;

pivot=QKPass(r,left,right); QKSort(r,left,pivot-1);

r[0]=r[low]; //将枢轴记录移至数组的闲置分量 int pivotkey=r[low].key;//枢轴记录关键字 while(lowwhile(low=pivotkey) --high; // high从右到左找小于x.key的记录 if(lowr[low++]=r[high]; //将比枢轴记录小的记录移到低端 while(low++low; // low从左到右找小于x.key的记录 if(lowr[high--]=r[low]; //将比枢轴记录小的记录移到高端

r[low]=r[0]; //枢轴记录移到正确位置 return low;

QKSort(r,pivot+1,right);

}

} // QKPass void main() {

int i;

RecordType r[Max_Size];

int len;

printf(\"请输入待排序记录的长度:\"); scanf(\"%d\for(i=1;i<=len;i++)

srand((unsigned)time(NULL)); for(i=1;i<=len;i++) r[i].key =rand(); printf(\"\\n待排序记录:\\n\"); for(i=1;i<=len;i++)

printf(\"%6d \printf(\"\\n\");

QKSort(r,1,len); printf(\"\\n排序后的记录:\\n\"); for(i=1;i<=len;i++)

printf(\"%6d \ printf(\"\\n\\n\"); }

测试结果

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baomayou.com 版权所有 赣ICP备2024042794号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务