版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计(论文)任务书 学院 计算机科学与技术 专 业_2005-1 班一、 课程设计(论文)题目 二、 课程设计(论文)工作自2007年6月五日起至2007年7月丄日止。三、 课程设计(论文)地点:多媒体实验室(5-302,303) 四、 课程设计(论文)内容要求:1•本课程设计的目的 (1) 熟练掌握C语言的基本知识和技能; (2) 掌握各种排序(直接插入,希尔,冒泡,快速排序,简单选择,堆排序)方法及适用场合,并能在解决实际问题时灵活应用; (3) 从空间和时间的角度分析各种排序; (5)培养分析、解决问题的能力;提高学生的科技论文写作能力。 —课程设计的任务及要求 —1) 基本要求: (1) 设计一个的菜单将在实现的功能显示出来,并有选择提示;(2) 分别实现直接插入,希尔,冒泡,快速排序,简单选择,堆排序算法;(3) 通过多种测试数据,对各种排序算法的时间复杂度和空间复杂度进行比较并说明在实际场合的运用。 2) 创新要求: 提高算法效率,降低时间复杂度和空间复杂度 3) 课程设计论文编写要求 (1) 要按照课程设计模板的规格书写课程设计论文 (2) 论文包括目录、正文、心得体会、参考文献等 (3) 课程设计论文用B5纸统一打印,装订按学校的统一要求完成 4) 答辩与评分标准: (1) 完成原理分析:20分; (2) 完成设计过程:40分;(3) 完成调试:20分;(4) 回答问题:20分。5) 参考文献:(1) 严蔚敏,吴伟民•数据结构.北京:清华大学出版社,2006.(2) 严蔚敏、吴伟民、米宁•数据结构题集。北京:清华大学出版社,2006.(3)谭浩强.C程序设计(第二版)作者:清华大学出版社,2006.6) 课程设计进度安排内容 天数 地点构思及收集资料 2 图书馆编程设计与调试 5 实验室撰写论文 3 图书馆、实验室学生签名: 年月日课程设计(论文)评审意见(1)完成原理分析(20分):优()、良(、、中(、、一般(、、差();(2)设计分析 (20分):优()、良(、、中(、、一般(、、差();(3)完成调试 (20分):优()、良(、、中(、、一般(、、差();(4)翻译能力 (20分):优()、良(、、中(、、一般(、、差();(5)回答问题 (20分):优()、良(、、中(、、一般(、、差();(6)格式规范性及考勤是否降等级:是()、否()评阅人: 职称: 年月日目录TOC\o"1-5"\h\z一、 问题描述 4\o"CurrentDocument"二、内容简介 4\o"CurrentDocument"2.1基本要求: 4\o"CurrentDocument"2.2.算法思想: 5\o"CurrentDocument"2.3.模块划分: 7\o"CurrentDocument"2.4.数据结构: 7\o"CurrentDocument"2.5.源程序: 7\o"CurrentDocument"2.6.测试情况: 20\o"CurrentDocument"三、小结 24\o"CurrentDocument"四、参考文献 25问题描述分别实现直接插入、希尔、冒泡、快速排序、简单选择、堆排序的算法。分别从空间和时间的角度来分析各种排序的。通过测试多组数据来掌握各种排序的方法及适用场合,并能在解决实际问题灵活运用。在编写代码的时候,有以下几个问题:(1)建立一个主函数,在主函数中要有菜单界面,和输入功能键相应执行的功能。并且要求能循环使用系统。(2)分别实现直接插入、希尔、冒泡、快速排序、简单选择、堆排序的算法。(3)通过输入不同的数据数组,来测试每组数据用那种排序算法最优。二、内容简介2.1基本要求:分别实现直接插入,希尔,冒泡,快速排序,简单选择,堆排序算法;设计一个菜单将要实现的功能显示出来。通过测试多组数据对各种排序算法的时间复杂度和空间复杂度进行比较并说明在实际场合的运用。在实现这六种排序算法的过程中,首先要建立一个静态的说明页面,把每个功能键对应的操作给一一说明,能让使用者快速的进入用户的角色。进入系统时,需要提示用户下一步应该输入什么功能键,并且要让用户清楚的知道输入了此功能键以后将进入什么排序系统中。进入相应的排序系统后,要提示用户输入一组需要排序的数据,输入数据组后,系统要依次显示出未排序前数据的位置,排序后数据的位置,在排序过程中交换或比较的次数,排序的趟树,还有此种排序时间的消耗,并提示按任意键继续系统。并且要构建一个对于同一个数据数组,依次用所有的排序算法给其排序后,输出对应排序算法的时间效率,再经过系统比较后,输出在所有排序方法中时间效率最优的排序算法,如果时间相等,则都输出。系统要可以循环使用,若要退出系统,则只需输入e功能键即可!2.2.算法思想:1. 直接插入排序的基本思想是基于插入,开始假定第一个记录有序,然后从第二个记录开始,依次插入到前面有序的子文件中。即将记录R[i](2<=i<=n)插入到有序子序列R[l..iT]中,使记录的有序序列从R[l..i-1]变为R[l..i],最终使整个文件有序。共进行n-1趟插入。最坏时间复杂度是0(厲),平均时间复杂度是0(n2),空间复杂度是O(1),是稳定排序。简单选择排序的基本思想是基于选择,开始有序序列长度为零,第i(l〈二i〈n)趟简单选择排序是,从无序序列R[i..n]的n-i+1记录中选出关键字最小的记录,和第i个记录交换,使有序序列逐步扩大,最后整个文件有序。共进行n-1趟选择。最坏时间复杂度是0(n2),平均时间复杂度是0(n2),空间复杂度是0(1),是不稳定排序。希尔排序:先将整个待排记录分割成若干子序列分别进行直接插入排序,待整个序列中的记录基本有序时,再对全体记录进行一次直接插入排序冒泡排序:首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则将两个记录交换,然后比较第二个记录和第三个记录的关键字。依此类推,直到第N-1和第N个记录的关键字进行过比较为止。上述为第一趟排序,其结果使得关键字的最大纪录被安排到最后一个记录的位置上。然后进行第二趟起泡排序,对前N-1个记录进行同样操作。一共要进行N-1趟起泡排序快速排序思想:首先将待排序记录序列中的所有记录作为当前待排序区域,以第一个记录的关键字作为枢轴(或支点)(pivot),凡其关键字不大于枢轴的记录均移动至该记录之前,凡关键字不小于枢轴的记录均移动至该记录之后。致使一趟排序之后,记录的无序序列R[s..t]将分割成两部分:R[s..i-1]和R[i+l..t],且R[j].keyWR[i].keyWR[k].key(sWjvi,ivkWt),然后再递归地将R[s..i-1]和R[i+1..t]进行快速排序。快速排序在记录有序时蜕变为冒泡排序,可用“三者取中”法改善其性能,避免最坏情况的出现。堆排序基本思想是:堆是n个元素的序列,先建堆,即先选得一个关键字最大或最小的记录,然后与序列中最后一个记录交换,之后将序列中前n-1记录重新调整为堆(调堆的过程称为“筛选”),再将堆顶记录和当前堆序列的最后一个记录交换,如此反复直至排序结束。优点是在时间性能与树形选择排序属同一量级的同时,堆排序只需要一个记录大小供交换用的辅助空间,调堆时子女只和双亲比较避免了过多的辅助存储空间及和最大值的比较,主函数)2.3.模块划分:voidInsertSort(RECNODE*r,intn)直接插入排序voidBubleSort(RECNODE*r,intn)冒泡排序intPartition(RECNODE*r,int*low,int*high)一躺快速排序voidQuickSort(RECNODE*r,intstart,intend)快速排序voidSeleSort(RECNODE*r,intn)直接选择排序voidShellSort(RECNODE*r,intn)希尔排序voidSift(RECNODE*r,inti,intm)voidHeapSort(RECNODE*r,intn)堆排序voidBubleSort(doublea[])时间数组的冒泡排序doubleTInsertSort(intlen,RECNODE*a,intp)直接插入排序时间测试doubleTBubleSort(intlen,RECNODE*a,intp)冒泡排序时间测试doubleTQuickSort(intlen,RECNODE*a,intp)快速排序时间测试doubleTSeleSort(intlen,RECNODE*a,intp)直接选择排序时间测试doubleTShellSort(intlen,RECNODE*a,intp)希尔排序时间测试doubleTHeapSort(intlen,RECNODE*a,intp)堆排序时间测试2.4.数据结构:typedefstruct{intkey;//关键字}RECNODE;结构体2.5.源程序:#defineMAXSIZE50#include<stdio.h>#include<iostream>#include<ctime>#include<windows.h>#include<cmath>usingnamespacestd;typedefstruct{intkey;}RECNODE;intb,t;//b为记录交换的次数,t为记录排序的趟数intMakeList(RECNODE*r){intj,k;printf("请输入初始数据(每个数据以空格隔开,-1结束):");k=0;scanf("%d",&j);while(j!=-1){k++;r[k].key=j;scanf("%d",&j);}returnk;}//输入要排序的一组数据,并且返回数据的个数,以-1为结束标志////////////////////////////////////////////////////////////////////////voidUndealoutList(RECNODE*r,intn){inti;printf("未排序前的数据:");for(i=0;i<n;i++)printf("%d",r[i+1].key);printf("\n");}voidDealoutList(RECNODE*r,intn){inti;printf("排序后的数据:");for(i=0;i<n;i++)printf("%d",r[i+1].key);printf("\n");printf("交换或比较的次数:%d\n",b);printf("排序的趟数:%d\n",t);}////////////////////////////////////////////////////////////////////////voidInsertSort(RECNODE*r,intn)//直接插入排序///*实现“直接插入排序”可分三步进行:1.利用“顺序查找”实现在R[1..i-1]中查找R[i]的插入位置,R[1..j].key?R[i].key<R[j+1..i-1].key;将R[j+1..i-1]中的所有记录均后移一个位置;将R[i]插入(复制)到R[j+1]的位置上。*/{inti,j;b=0,t=0;//b为记录交换的次数,t为记录排序的趟数for(i=2;i<=n;i++){r[0]=r[i];//r[0]的作用是暂存空间j=i-1;while(r[0].key<r[j].key)//如果目标数比源数小{r[j+1]=r[j];//则让大的数从后往前依次往后挪一个位置,然后让小数插入到恰当位置j--;b++;}r[j+1]=r[0];b++;t++;}}////////////////////////////////////////////////////////////////////////voidBubleSort(RECNODE*r,intn)//冒泡排序{inti,j;b=0,t=0;//b为记录交换的次数,t为记录排序的趟数RECNODEtemp;//暂寸空间for(i=1;i<n;i++){for(j=n-1;j>=i;j--)//目标数是从第一个数开始,被比较数从最后一个开始if(r[j+1].key<r[j].key)//如果目标数比其下一个数要大{ //则两数交换,下一趟比较则还是用原目标数与其下一个书比较temp=r[j+1];r[j+1]=r[j];r[j]=temp;b++;}elseb++;//否则不用交换,继续和下一个数比较t++;}}////////////////////////////////////////////////////////////////////////voidBubleSort(doublea[])//时间数组的冒泡排序{inti,j;b=0,t=0;doubletemp;for(i=1;i<7;i++){for(j=5;j>=i;j--)if(a[j+1]<a[j]){temp=a[j+1];a[j+1]=a[j];a[j]=temp;b++;}elseb++;t++;}}////////////////////////////////////////////////////////////////////////intPartition(RECNODE*r,int*low,int*high)//—躺快速排序///*找一个记录,以它的关键字作为“枢轴”,凡其关键字小于枢轴的记录均移动至该记录之前,反之,凡关键字大于枢轴的记录均移动至该记录之后。*/inti,j;staticintw=0;RECNODEtemp;i=*low;//i指向第一个数j=*high;temp=r[i];//暂存单元,存着目标数do{ //当目标数小于等于要比较的数,并且目标数在左边while((r[j].key>=temp.key)&&(i<j)){j--;//则不用换,只要让指向要比较的数的位置左移一位w++;}if(i<j)//若遇到一个在目标数右边的小数{r[i]=r[j];//则将小数赋给目标数原来所在的位置i++;//要比较的数的位置右移一位w++;}while((r[i].key<=temp.key)&&(i<j))//同理比较,只是现在要比较的数在目标数的右边{i++;w++;}if(i<j){r[j]=r[i];j--;w++;}}while(i!=j);r[i]=temp;b=w;//b为记录交换的次数returni;}voidQuickSort(RECNODE*r,intstart,intend)//快速排序{inti;staticintq=0;if(start<end){i=Partition(r,&start,&end);q++;QuickSort(r,start,i-l);//对低子表递归排序,i为中间位置QuickSort(r,i+1,end);//对高子表递归排序}t=q;//t为记录排序的趟数}////////////////////////////////////////////////////////////////////////voidSeleSort(RECNODE*r,intn)//直接选择排序////每次都是将无序序列中的最小的数找到,然后依次放到有序序列的最后{inti,j,z;b=0,t=0;//b为记录交换的次数,t为记录排序的趟数RECNODEtemp;for(i=1;i<n;i++){z=i;for(j=i+1;j<=n;j++)//从第i个后的序列中选出最小的一个数if(r[j].key<r[z].key){z=j;b++;}elseb++;if(z!=i){temp=r[i];r[i]=r[z];r[z]=temp;}t++;}////////////////////////////////////////////////////////////////////////voidShellSort(RECN0DE*r,intn)//希尔排序//{inti,j,dk;//dk记录前后位置的增量b=0,t=0;dk=n/2;while(dk>0)//一趟增量为dk的插入排序{for(i=dk+1;i<=n;++i)if(r[i].key〈r[i-dk].key)//将r[i]插入有序增量子表{r[0]=r[i];//r[0]为暂存单元for(j=i-dk;j>0&&r[0].key〈r[j].key;j-=dk){r[j+dk]=r[j];b++;//记录后移,查找插入位置}r[j+dk]=r[0];}dk=dk/2;//增量改为原来的一半t++;}}////////////////////////////////////////////////////////////////////////voidSift(RECNODE*r,inti,intm){intj;staticintx=0;RECNODEtemp;temp=r[i];j=2*i;while(j<=m)//沿key较大的孩子结点向下筛选{if(j〈m&&(r[j].key〈r[j+l].key))//j为key较大的记录的下标{}if(temp.key<r[j].key){r[i]=r[j];i=j;j=2*i;x++;}elsex++;break;}r[i]=temp;b=x;}voidHeapSort(RECNODE*r,intn)//堆排序{RECNODEtemp;inti;t=0;for(i=n/2;i>=1;--i)Sift(r,i,n);//建大顶堆for(i=n;i>=2;--i)//将堆顶记录和当前未经排序子序列//H.r[1..i]中最后一个记录相互交换{temp=r[1];r[1]=r[i];r[i]=temp;Sift(r,1,i-1);//对H.r[1]进行筛选t++;}}////////////////////////////////////////////////////////////////////////doubleTInsertSort(intlen,RECNODE*a,intp){if(p!=7){len=MakeList(a);UndealoutList(a,len);}//若为时间效率全比较,则不用把比较的具体过程输出,只需输出排序时间LARGE_INTEGERm_liPerfFreq={0};QueryPerformanceFrequency(&m_liPerfFreq);LARGE_INTEGERm_liPerfStart={0};QueryPerformanceCounter(&m_liPerfStart);InsertSort(a,len);if(p!=7){DealoutList(a,len);}LARGE_INTEGERliPerfNow={0};QueryPerformanceCounter(&liPerfNow);doubletime=liPerfNow.QuadPart-m_liPerfStart.QuadPart;time/=m_liPerfFreq.QuadPart;cout〈〈"直接插入排序时间消耗:”<<time〈〈"MS"〈〈"\n";return(time);}//直接插入排序时间测试////////////////////////////////////////////////////////////////////////doubleTBubleSort(intlen,RECNODE*a,intp){if(p!=7)//若为时间效率全比较,则不用把比较的具体过程输出,只需输出排序时间{len=MakeList(a);UndealoutList(a,len);}LARGE_INTEGERm_liPerfFreq={0};QueryPerformanceFrequency(&m_liPerfFreq);LARGE_INTEGERm_liPerfStart={0};QueryPerformanceCounter(&m_liPerfStart);BubleSort(a,len);if(p!=7){DealoutList(a,len);}LARGE_INTEGERliPerfNow={0};QueryPerformanceCounter(&liPerfNow);doubletime=liPerfNow.QuadPart-m_liPerfStart.QuadPart;time/=m_liPerfFreq.QuadPart;cout〈〈”冒泡排序序时间消耗:”〈〈time〈〈”MS”〈〈”\n”;return(time);}//冒泡排序时间测试////////////////////////////////////////////////////////////////////////doubleTQuickSort(intlen,RECNODE*a,intp){if(p!=7){len=MakeList(a);UndealoutList(a,len);}//若为时间效率全比较,则不用把比较的具体过程输出,只需输出排序时间LARGE_INTEGERm_liPerfFreq={0};QueryPerformanceFrequency(&m_liPerfFreq);LARGE_INTEGERm_liPerfStart={0};QueryPerformanceCounter(&m_liPerfStart);QuickSort(a,1,len);if(p!=7){DealoutList(a,len);}//若为时间效率全比较,则不用把比较的具体过程输出,只需输出排序时间LARGE_INTEGERliPerfNow={0};QueryPerformanceCounter(&liPerfNow);doubletime=liPerfNow.QuadPart-m_liPerfStart.QuadPart;time/=m_liPerfFreq.QuadPart;cout〈〈"快速排序时间消耗:”<<time〈〈"MS"〈〈"\n";return(time);}//快速排序时间测试////////////////////////////////////////////////////////////////////////doubleTSeleSort(intlen,RECNODE*a,intp){if(p!=7){len=MakeList(a);UndealoutList(a,len);}LARGE_INTEGERm_liPerfFreq={0};QueryPerformanceFrequency(&m_liPerfFreq);LARGE_INTEGERm_liPerfStart={0};QueryPerformanceCounter(&m_liPerfStart);SeleSort(a,len);if(p!=7){DealoutList(a,len);}//若为时间效率全比较,则不用把比较的具体过程输出,只需输出排序时间LARGE_INTEGERliPerfNow={0};QueryPerformanceCounter(&liPerfNow);doubletime=liPerfNow.QuadPart-m_liPerfStart.QuadPart;time/=m_liPerfFreq.QuadPart;cout〈〈”直接选择排序时间消耗:”〈〈time〈〈”MS”〈〈”\n”;return(time);}//直接选择排序时间测试////////////////////////////////////////////////////////////////////////doubleTShellSort(intlen,RECNODE*a,intp){if(p!=7){len=MakeList(a);UndealoutList(a,len);}LARGE_INTEGERm_liPerfFreq={0};QueryPerformanceFrequency(&m_liPerfFreq);LARGE_INTEGERm_liPerfStart={0};QueryPerformanceCounter(&m_liPerfStart);ShellSort(a,len);if(p!=7){DealoutList(a,len);}//若为时间效率全比较,则不用把比较的具体过程输出,只需输出排序时间LARGE_INTEGERliPerfNow={0};QueryPerformanceCounter(&liPerfNow);doubletime=liPerfNow.QuadPart-m_liPerfStart.QuadPart;time/=m_liPerfFreq.QuadPart;cout〈〈"希尔排序时间消耗:"〈〈time〈〈"MS"〈〈"\n";return(time);}//希尔排序时间测试////////////////////////////////////////////////////////////////////////doubleTHeapSort(intlen,RECNODE*a,intp){if(p!=7)//若为时间效率全比较,则不用把比较的具体过程输出,只需输出排序时间{len=MakeList(a);UndealoutList(a,len);}LARGE_INTEGERm_liPerfFreq={0};QueryPerformanceFrequency(&m_liPerfFreq);LARGE_INTEGERm_liPerfStart={0};QueryPerformanceCounter(&m_liPerfStart);HeapSort(a,len);if(p!=7){DealoutList(a,len);}LARGE_INTEGERliPerfNow={0};QueryPerformanceCounter(&liPerfNow);doubletime=liPerfNow.QuadPart-m_liPerfStart.QuadPart;time/=m_liPerfFreq.QuadPart;cout〈〈"堆排序时间消耗:”〈〈time〈〈"MS"〈〈"\n";return(time);}//堆排序时间测试////////////////////////////////////////////////////////////////////////voidmain()
doubleTIMES[7],TIMES1[7];RECNODEa[MAXSIZE];intlen,p;do{指导老师:刘艳丽程序员:徐园园3号05指导老师:刘艳丽程序员:徐园园3号05计算机一班※※※※※※※※菜单※※※※※※※※printf(”☆★ ☆★、『);☆★\n");★☆\n");☆★\n");★☆\n");☆★\n");☆★\n");★☆\n");☆★\n");☆★\n"); 直接插入排序 ☆★\n");★☆\n");☆★\n");★☆\n");☆★\n");☆★\n");★☆\n");☆★\n");☆★\n"); 直接插入排序 ******************★☆、『); 冒泡排序 ********************\n"); 快速排序 ********************\n"); 直接选择排序 ********************\n"); 堆排序 ********************\n"); 希尔排序 ********************\n"); 时间效率比较 ********************\n");(0) 退出 ********************\n");switch(p){case1:printf("直接插入排序\n");TInsertSort(len,a,p); break;//直接插入排序case2:printf("冒泡排序\n");TBubleSort(len,a,p); break;//冒泡排序case3:printf("快速排序\n");TQuickSort(len,a,p); break;//快速排序case4:printf("直接选择排序\n");TSeleSort(len,a,p); break;//直接选择排序case5:printf("堆排序\n");THeapSort(len,a,p); break;//堆排序case6:printf("希尔排序\n");TShellSort(len,a,p); break;//希尔排序case7:printf("时间效率比较\n");{len二MakeList(a);UndealoutList(a,len);TIMES1[1]=TIMES[1]=TInsertSort(len,a,p);TIMES1[2]=TIMES[2]=TBubleSort(len,a,p);TIMES1[3]=TIMES[3]=TQuickSort(len,a,p);TIMES1[4]=TIMES[4]=TSeleSort(len,a,p);TIMES1[5]=TIMES[5]=THeapSort(len,a,p);TIMES1[6]=TIMES[6]=TShellSort(len,a,p);BubleSort(TIMES);printf("\n");if(TIMES[l]==TIMESl[l])printf(〃排序这组数据用直接插入排序时间最短!\n〃);if(TIMES[l]==TIMESl[2])printf(〃排序这组数据用冒泡排序时间最短!\n〃);if(TIMES[l]==TIMESl[3])printf(〃排序这组数据用快速排序时间最短!\n〃);if(TIMES[l]==TIMESl[4])printf(〃排序这组数据用直接选择排序时间最短!\n");if(TIMES[l]==TIMESl[5])printf(〃排序这组数据用堆排序时间最短!\n〃);if(TIMES[l]==TIMESl[6])printf(〃排序这组数据用希尔排序时间最短!\n〃);break;}//时间效率全比较case0: break;//退出default:printf("输入错误!请重新输入!\n");break;}system("pause");//系统暂停,提示按任意键继续。。。。}while(p!=0);//fordo}
2.6.测试情况:XJ<XJ<XJ<XJ<XJ<XJ<XJ<灵上卬零兰京"占申,序糸字充*EXJ<XJ<XJ<XJ<XJ<XJ<XJ<指导老师:刘艳丽程序员:徐园园3号跖计算机一班3K3K丸 匚K匚£亍hehehehehehehe€4〉—育 诜申序丸 匚(3K「 ■'l|匚(卜匚★☆xmmx(?> 时间嫌率比较£亍HEHEHEHEHEHEXX(0) ]艮出址■■数1••次63号序数数篇.•序继序專的数饕進述入初土刖的比趟入意上插入晉或的插任在严翳徙雯-WS供晝稟龔x^w请各98弔89HJ7帘564P5Bn421
^21
s162
吟36985746859-4Hs78654213548舌$、、申e■序XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<
g序XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<XJ<★宅讣HEHEHEHEHEHEHEHEHEHEHEHEHEHEHEHEHEHEHEHEHEHEHEHEHExjc^l^才请在上述序号中选择一个并输入:首先显示综合排序系统的界面,然后提示输入菜单中的子选项,现输入1,进入直接插入排序的界面。
进入直接插入排序的界面后,系统提示要输入需要排序的一组数据,并且以-1为结束符。先输入12456789984536-1,系统会依次显示出未排序前数据的位置,排序后数据的位置,在排序过程中交换或比较的次数,排序的趟树,还有直接插入排序时间的消耗,并提示按任意键继续系统。现选择2,则进入冒泡排序的界面。如下:79UT1.■78F^M9779UT1.■78F^M97稚88七工44dA62.k51居4爭9=A%28162,叮3唇:數I••次7间续数数番••时继始的数齧序键述序初前的比趟匮S上排入誓或的排任左SI盂亠畫按Ms78798465421636594进入冒泡排序的界面,排序好后,输入3,进入快速排序868965868965456543十0000^7-9965格456苫554針89^36才3Ms・・■耗-中薯..次58号数数篇:8序始的数饕红述序初前的比趟蜃思上排入晉或的排任在速蛊按进入快速排序的界面,排序好后,输入4,进入直接选择排序,-1纟吉束):4587436578912-189126587,-1纟吉束):4587436578912-18912658763439-78据呂7数45236••数MS中薯.•次8S号序数数番:序继序范的数饕餐述择初前的比趟择意上选入書或的选任注豊果琵请进入直接选择排序的界面,排序好后,输入5,进入堆排序-178945G239843156R?
士口8
194,5幵68456隔32牝9炷48P-3nj-n15娄6每:纵I••次7整数数番:1始的数饕燼初前的比趟时意上序入嘗或的序任在^^al啜序徙伎雇稟姜请Ms1323进入堆排序的界面,排序好后,输入3,进入希尔排序,-丄纟吉東):3265684512987864-19878646878985格445
空682以53据£12数326112个4嗨:勲I••次31数数番:i始的数叢绻述序初前的比趟屢S上排入昔或的排任在尔输连塞序尔fe进入希尔排序的界面,排序好后,输入7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度演员肖像权许可合同
- 2025年度二零二五年度个人住房贷款连带责任保证合同模板版
- 二零二五年度河北省事业单位聘任合同(外语教育交流)
- 二零二五年度短视频行业内容合作与联合推广合同
- 小学生交通法规普及与实操能力培养研究
- 现代科技在川菜烹饪中的应用与展望
- 语感在公共演讲中的作用及培养方法
- 评价机制创新提高学生综合素养的路径
- 科技背景下的学生自我认知与情绪教育策略
- 科技挑战与学校实践活动的创新能力培养
- 2024年乡村振兴(产业、文化、生态)等实施战略知识考试题库与答案
- 模块01 中国古代史 历史小论文+观点论述题专项50练(解析版)备战2024年中考历史一轮复习(部编版)
- 网络安全基础知识入门教程
- AI智慧物流园区整体建设方案
- 无痛人工流产术课件
- 心力衰竭业务学习护理课件
- 《项脊轩志》公开课课件【一等奖】
- 美发学徒助理职业规划书
- 法医病理学课件
- 介绍uppc技术特点
- 《谏逐客书》理解性默写(带答案)最详细
评论
0/150
提交评论