2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 快速排序实验报告 c语言 快速排序算法c语言实验报告.docx

快速排序实验报告 c语言 快速排序算法c语言实验报告.docx

时间:2021-04-29 08:44:36

相关推荐

快速排序实验报告 c语言 快速排序算法c语言实验报告.docx

快速排序算法c语言实验报告

实验六:冒泡法排序物理学416班赵增月F12XX日期:XX年10月31日一·实验目的1.熟练掌握程序编写步骤;2.学习使用冒泡法和选择法排序;3.熟练掌握数组的定义和输入输出方法。二·实验器材1.电子计算机;三·实验内容与流程1.流程图冒泡法(2)选择法2.输入程序如下:冒泡法#includevoidmain(){inta[10];inti,j,t;printf("请输入10个数字:\n");for(i=0;ia[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("排序后如下:\n");for(i=0;ivoidmain(){inta[10];inti,j,t,k;printf("请输入10个数字:\n");for(i=0;ia[j])k=j;t=a[i];a[i]=a[k];a[k]=t;}printf("排序后如下:\n");for(i=0;i#include#include#include#definerandx(x)(rand()%x)typedefintKeyType;typedefintDataType;typedefstruct{KeyTypekey;/*排序码字段*/DataTypeinfo;/*记录的其它字段*/}RecordNode;typedefstruct{intn;/*文件中的记录个数,可以视为常量*/RecordNode*record;}SortObject;voidcreatsort(SortObject*pvector,int&l,int&r)//新建二叉排序树{inti;intk;printf("您即将要创建一个序列\n");printf("\n请输入该序列元素的个数\n");scanf("%d",&pvector->n);pvector->record=(RecordNode*)malloc((sizeof(RecordNode))*(pvector->n));printf("\n你要以什么方式创建序列?\n方式1:自动创建请输入1,方式2:手动创建请输入0\n");scanf("%d",&k);if(k){srand((int)time(0));for(i=0;in;i++){if(pvector->nrecord[i].key=randx(100);elseif((pvector->nrecord[i].key=randx(1000);elsepvector->record[i].key=randx(pvector->n);}}else{printf("\n请输入%d个大小不一样的整数\n",pvector->n);for(i=0;in;i++){scanf("%d",&pvector->record[i].key);}}if(pvector)printf("\n序列创建成功!\n");elseprintf("\n序列创建失败!\n");l=0,r=pvector->n-1;}voidshow(SortObject*pvector){printf("\n当前序列为:\n");if(!pvector)printf("当前序列为空");elsefor(inti=1;in;i++){printf("%d",pvector->record[i-1].key);if(i%15==0)printf("\n");}printf("\n");}voidquickSort(SortObject*&pvector,intl,intr){inti,j;RecordNodetemp,*data=pvector->record;if(l>=r)return;/*只有一个记录或无记录,则无须排序*/i=l;j=r;temp=data[i];while(i!=j){/*找Rl的最终位置*/while(i=)j--;/*向左扫描找排序码小于的记录*/if(i,i-1);/*递归处理左区间*/quickSort(pvector,i+1,r);/*递归处理右区间*/}voidinterface(void){printf("\n&&&&&&&&&&&&&

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。