大数据结构课程设计-排序算法比较完整版_第1页
大数据结构课程设计-排序算法比较完整版_第2页
大数据结构课程设计-排序算法比较完整版_第3页
大数据结构课程设计-排序算法比较完整版_第4页
大数据结构课程设计-排序算法比较完整版_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大数据结构课程设计_排序算法比较完整版XXXXXX大学《数据结构》课程设计报告大数据结构课程设计_排序算法比较完整版排序算法比较二感想体会与总结大数据结构课程设计_排序算法比较完整版排序算法比较一、需求分析数排序七种排序方法(可添加其并统计每一种排序所耗费坐标形式)。二、程序的主要功能序、基数排序)的一种三、程序运行平台四、数据结构。{{L、r=(int*)malloc(MAXSIZE*sizeof(int));//分配存储空间if(!L、r){printf("存储分配失败!");//存储分配失败大数据结构课程设计_排序算法比较完整版}五、算法及时间复杂度(一)各个排序就是算法思想:录的关键字进行比较,交换,然后比较第二个记录与第三个记录的关使得关键字的最大纪录被安排到最后录的关键字小,则可分别对这两部分记最后一个记录交换,然后对序列中前N-1记录它调整成一个大顶堆,如此反复直到排序结束。配与收集来实现排序O(n2)O(n2)2O(n2)O(n2)O(n2)大数据结构课程设计_排序算法比较完整版OO(n2)22O(n2)2O(n2)算法算法名称用时直接插入排序0、25折半插入排序0、219起泡排序0、704快速排序0、016选择排序0、39堆排序0、0001基数排序0、016大数据结构课程设计_排序算法比较完整版2、系统显示出随机产生的随机数。大数据结构课程设计_排序算法比较完整版4、用户可以选择继续排序或者退出系统。七、程序源代码/**********************************************************************************************第六题:排序算法比较NN0),大数据结构课程设计_排序算法比较完整版果为由小到大的顺序),并统计每一种排序所耗费的时间(统计************************************************************************************************/#include"stdio、h"#include"stdlib、h"#defineERROR0#defineOK1#defineOVERFLOW-2defineMAXSIZE100000//用户自己规定排序的数字的长度typedefintStatus;edefstruct{int*r;//r[0]闲置intlength;//顺序表的总长度//构造一个空线性表sInitSqlistSqlistL{L、r=(int*)malloc(MAXSIZE*sizeof(int));//分配存储空间{配失败L、length=0;//初始长度为0returnOK;}//输入随机数并显示在界面上atusScanfSqlistintNSqlistL{anfdNforii<=N;i++)and大数据结构课程设计_排序算法比较完整版printf("随机产生了%d个随机数,它们就是:\n",N);forii<=N;i++){}printf("\n");N}//输出排序之后的数据StatusPrintfSqlistintNSqlistL){printf输出数据个数dnLlengthprintf左向右依次增大)\n");//输出数据forii<=N;i++)}//***************************************************************//直接插入排序//***************************************************************{{}{{L、r[0]=L、r[i];//复制为监视哨j大数据结构课程设计_排序算法比较完整版{L、r[j+1]=L、r[j];//记录后移}L、r[j+1]=L、r[0];//插入到正确位置}}}//***************************************************************//折半插入排序//***************************************************************{inti,j,mid,low,high;{}{{{high=mid-1;}{low=mid+1;//插入点在高半区}}//whilefor(j=i-1;j>=high+1;j--)//插入点后的数据后移{}L、r[high+1]=L、r[0];//将数据插入大数据结构课程设计_排序算法比较完整版}/********************************************************************************************************************************************************//*StatusShellInsert(Sqlist&L,intdk)//希尔插入排序{inti,j;//前后位置的增量就是dkfori=dk+1;i<=L、length;i++)//r[0]只就是暂存单元,不就是哨兵,{{forji-dk;j>0&&L、r[0]<L、r[j];j-=dk){//记录后移,查找插入位置}//插入}}}StatusShellSortSqlistLintdltaintt{//希尔排序{}forii<t;i++){//一趟增量rtLdlta//一趟增量大数据结构课程设计_排序算法比较完整版}returnOK;}//**************************************************************//起泡排序//**************************************************************sBubbleSortSqlistL{{}{{{//前面的数据>后面数据时L、r[j]=t;//将元素交换}}}}//****************************************************//快速排序//****************************************************在位置,此时在它之前(后)的记录均不大于它{intpivotkey;//记录关键字while(low<high){大数据结构课程设计_排序算法比较完整版{high--;}L、r[low]=L、r[high];//将比枢轴记录小的记录移到低端{}}}//Partition函数voidQsort(Sqlist&L,intlow,inthigh){{pivotloc=Partition(L,low,high);Qsort(L,low,pivotloc-1);//对低子表递归排序,pivotloc就是枢轴位置Qsort(L,pivotloc+1,high);//对高子表递归排序}}//Qsort函数StatusQuickSort(Sqlist&L){{}ortLLlengthort//**********************************************//选择排序//**********************************************tusChooseSortSqlistL{{大数据结构课程设计_排序算法比较完整版}for(i=1;i<=L、length;i++)//排序的趟数{i{}{}}}//****************************************//堆排序//****************************************{for(i=2*s;i+1<=m;i*=2)//沿数据较大的孩子结点向下筛选{}L、r[s]=L、r[0];//插入新数据}StatusHeapSort(Sqlist&L)//堆排序{大数据结构课程设计_排序算法比较完整版{}{}returnOK;}//**************************************************//基数排序//**************************************************typedefstructnode{intkey;eStatusRadixSort(SqlistL){RecType*p,*s,*q,*head[10],*tail[10];//定义各链队的首尾指针i{cTypemallocsizeofRecTypeif(i==1)//当为第一个元素时{q=s;p=s;t++;}{q->next=s;//将链表连接起来大数据结构课程设计_排序算法比较完整版t;}q->next=NULL;}while(n>0)//将每个元素分配至各个链队{for(j=0;j<10;j++)//初始化各链队首、尾指针{tailj]=NULL;}while(p!=NULL)//对于原链表中的每个结点循环{k=p->key/d;k=k%10;if(head[k]==NULL)//进行分配{head[k]=p;tail[k]=p;}else{tail[k]->next=p;tail[k]=p;}p=p->next;//取下一个待排序的元素}p=NULL;//用于收集第一个元素时的判断for(j=0;j<10;j++)//对每一个链队循环,搜集每一个元素{if(head[j]!=NULL)//进行搜集{if(p==NULL){p=head[j];q=tail[j];}{q->next=head[j];q=tail[j];}}}大数据结构课程设计_排序算法比较完整版{{n++;m++;}}}while(p!=NULL)//将链表转换为顺序表{}}//**************************************//主函数//**************************************voidmain){tLmioicezleduration\n");\n");█████████████████████████████████████\n");大数据结构课程设计_排序算法比较完整版printf("\n");printf("█████████████████████████████████████\n");printf("以下就是各个排序算法的代号:\n\n");n");n");n");nstmLn");n");n");nprintf("8、退出该系统\n\n");anfdchoicechoicewhile(choice<1||choice>8){canfdchoice}whilechoice!=8){hoice{case/直接插入排序rtclockfinishclock);case折半插入排序大数据结构课程设计_排序算法比较完整版tclockfinishclock();case排序tclockfinishclock();case排序tclocktLfinishclock();case排序tclockLfinishclock();case排序tclockfinishclock();case排序tclockfi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论