下载此文档

(快速、基数)排序算法的设计.doc


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
实验三:(快速、基数)排序算法的设计一、实验目的和要求(1)深刻理解排序的定义和各种排序方法的特点,并能灵活运用。(2)掌握常用的排序方法,并掌握用高级语言实现排序算法的方法。(3)了解各种方法的排序过程及其依据的原则,并掌握各种排序方法的性能的分析方法。二、实验内容和原理(1)设计直接插入排序、冒泡排序、快速排序算法。(2)设计基数排序算法。三、:PC机;:Windows操作系统、VisualC++、算法描述及实验步骤直接插入排序在要排序的一组数中,假设前面(n-1)[n>=2]个数已经是排 好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数 也是排好顺序的。如此反复循环,直到全部排好顺序。 冒泡排序在要排序的一组数中,对当前还未排好序的范围内的全部数,自上 而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较 小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要 求相反时,就将它们互换。 快速排序算法通过一趟 扫描后,使得排序序列的长度能大幅度地减少。在冒泡排序中,一次 扫描只能确保最大数值的数移到正确位置,而待排序序列的长度可能只 减少1。快速排序通过一趟扫描,就能确保某个数(以它为基准点吧) 的左边各数都比它小,右边各数都比它大。然后又用同样的方法处理 它左右两边的数,直到基准点的左右只有一个元素为止。基数排序算法五、调试过程六、实验结果1、2、3、4、七、总结通过这次实验,对于多种排序有了一定地了解,在这次实验过程中,虽然遇到挺多的困难,但是我还是认真的对待。同时意识到我对这些方面的知识还是了解的不够深刻。附录:1、#include<>inta[100]; voidinsertsort(intn,inta[]){ inti,j; for(i=2;i<=n;i++) if(a[i]<a[i-1]) { a[0]=a[i]; a[i]=a[i-1]; for(j=i-2;a[0]<a[j];j--) a[j+1]=a[j]; a[j+1]=a[0]; } }intmain(){ intn,i; cin>>n; for(i=1;i<=n;i++){ cin>>a[i]; } insertsort(n,a);for(i=1;i<=n;i++){cout<<a[i]<<"";} return0;}2、#include<>#defineswap(x,y,t)((t)=(x),(x)=(y),(y)=(t))constintN=5;voidsort(intb[],intcount);intmain(){inta[N];cout<<endl;cout<<"请输入:";for(inti=0;i<N;i++)cin>>a[i];cout<<endl;cout<<"输出过程:";for(i=0;i<N;i++)cout<<""<<a[i];cout<<endl;cout<<"输出结果:";sort(a,N);return0;}voidsort(intb[],intn){intt,tempt;for(inti=0;i<n;i++){t=n-i-1;for(intj=0;j<t;j++){if(b[j]>b[j+1])swap(b[j],b[j+1],tempt);}}for

(快速、基数)排序算法的设计 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人170486494
  • 文件大小149 KB
  • 时间2019-02-21
最近更新