湖南大学数据结构试6快速排序问题.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
湖南大学数据结构试6快速排序问题

HUNAN UNIVERSITY 课程实习报告 题 目:快速排序问题 学生姓名 刘乐 学生学号 20080820208 专业班级 通信工程2班 指导老师 朱宁波 完 成 日 期 2010年月日 详细设计 构造一个顺序表的存储结构用来存储病人的待排序长度。 typedef int KeyType; //typedef int InfoType; typedef struct { KeyType key; //InfoType otherinfo; }RedType; typedef struct { RedType r[MAXSIZE+1]; int length; }SqList; 2 入队函数: 构造调整函数 int Partition(SqList L,int low,int high) { L.r[0]=L.r[low];//用子表第一个记录做枢轴记录 pivotkey=L.r[0].key;//枢轴记录关键字 while(lowhigh)//从表两端向中间扫描 { while(lowhigh L.r[high].key=pivotkey) high--; L.r[low]=L.r[high]; //将比枢轴小的移到低端 while(lowhigh L.r[low].key=pivotkey) low++; L.r[high]=L.r[low]; / /将比枢轴大的移到高端 } L.r[low]=L.r[0];//枢轴记录到位 return low;//返回枢轴位置 } void QSort(SqList L,int low,int high)//多次递归实现所有数有序化 { if(lowhigh) { pivotloc=Partition(L,low,high); QSort(L,low,pivotloc-1); QSort(L,pivotloc+1,high); } } 3主函数 void main() { int n,i; SqList L; printf(please enter the num:\n); scanf(%d,n); printf(%d,n); printf(\n); printf(please enter the values:\n); for(i=1;in+1;i++) { scanf(%d,L.r[i]); } printf(排序前:\n); for(i=1;in+1;i++) { printf(%d ,L.r[i]); } printf(\n); /*unsigned int seed; printf(enter a seed of srand:\n); scanf(%u,seed); srand(seed); pivotkey=rand(L.r[n]);*/ QSort(L,1,n); printf(排序后:\n); for(i=1;in+1;i++) { printf(%d ,L.r[i]); } printf(\n); }四、调试分析: 算法的时空分析:算法时间复杂度在最坏情况下为o(nlogn) 输入输出格式: 实验心得: 本次实验也是在宿舍完成的,因此去了就是让助教老师看了一下就通过了,因为书上用到快速排序的问题程序给的已经很全面,我就主要用这种方法实现了函数间的构造,所以还是难度不大,这次实验不仅熟悉了快速排序内容,而且对新学的内容有了更深的理解。 实验源程序: #includestdio.h #includestdlib.h #define MAXSIZE 20 typedef int KeyType; //typedef int InfoType; typedef struct { KeyType key; //InfoType otherinfo; }RedType; typedef struct { RedType r[MAXSIZE+1]; int length; }SqList; int pivotkey; int pivotloc; int Partition(SqList L,int low,i

文档评论(0)

zyongwxiaj8 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档