大数据结构:简单选择,直接插入,快速排序,冒泡排序希尔排序,堆排序算法比较平台_第1页
大数据结构:简单选择,直接插入,快速排序,冒泡排序希尔排序,堆排序算法比较平台_第2页
大数据结构:简单选择,直接插入,快速排序,冒泡排序希尔排序,堆排序算法比较平台_第3页
大数据结构:简单选择,直接插入,快速排序,冒泡排序希尔排序,堆排序算法比较平台_第4页
大数据结构:简单选择,直接插入,快速排序,冒泡排序希尔排序,堆排序算法比较平台_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、一、试验内容内部排序算法效率比拟平台的设计与实现、试验目的问题描述:各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大概 执行时间.试通过随机的数据比拟几种主要的根本算法的关键字比拟次数和关键字移动次 数,以取得直观感受.三、流程图开始序简单项选择择排序直接插入排希尔排结束四、源程序代码#define N 10int compare6=0,0,0,0,0,0,change6=0,0,0,0,0,0;void input(int s)int testN;srand(unsigned)time(NULL);for(int i=0;i<N;i+)testi=rand()%100

2、;for(int j=0;j<i;j+)while(testj=testi)testi=rand()%N; j=0;)for(i=0;i<=N-1;i+) si=testi;)void swap(int &a,int &b)int tmp;tmp=a;a=b;b=tmp;)void insertsort(int s)int i,j;int aN+1;for(i=1;i<=N;i+)ai=si-1;)for(i=2;i<=N;i+)a0=ai;for(j=i;j>0&&a0<aj-1&&(+compare0);j

3、-) aj=aj-1;change0+;)aj=a0;change0+;)void bubble_sort(int s,int n)int i,j,temp,aN;for(i=0;i<n;i+)ai=si;)for(i=0;i<n-1;i+)for(j=0;j<n-i-1;j+)(compare1+;if(aj > aj+1) (temp = aj;aj = aj+1;aj+1 = temp;change1+;int partition(int a口,int low,int high)(int t,key;t=alow;key=alow;while(low<hig

4、h)(while(low<high&&ahigh>=key) (high-;+compare2; if(low<high)(alow=ahigh;low+;change2+;while(low<high&&alow<=key) (low+;+compare2;if(low<high)(ahigh=alow;high-;change2+;alow=t;) return low;)void quicksort(int a,int low,int high)(int key;if(low<high)(key=partition

5、(a,low,high); quicksort(a,low,key-1);quicksort(a,key+1,high);)void selectsort(int s,int n)(int i,j,k,aN;int t;for(i=0;i<n;i+)(ai=si;)for(i=0;i<n-1;i+)(j=i;for(k=i+1;k<=n-1;k+)(if(ak<aj&&(+compare3) j=k;) if(j!=i)(t=ai;ai=aj;aj=t;change3+;)void shellinsertsort(int s,int n)(int i,k

6、,aN;k=int(n/2);for(i=0;i<n;i+)(ai=si;)for(int gap = n/2; gap > 0; gap /= 2)(for(int i = gap; i < n; i+)(int tmp = ai;int j = i;for(; j > 0 && tmp < aj-gap; j -= gap) (aj = aj-gap;compare4+;)aj = tmp;change4+;)void heap_adjust(int array,int i,int len)(int rc = arrayi;for(int j

7、= 2 * i; j <len; j *= 2)(if(j < len && arrayj < arrayj+1) j+;(compare5+;if(rc >= arrayj) break;)arrayi = arrayj; i = j;)arrayi = rc;)void heap_sort(int a,int len)(int i;for(i = (len-1)/2; i >= 0; i-)heap_adjust(a,i,len);for( i = (len-1); i > 0; i-)(swap(a0,ai);change5+;弹出最大

8、值,重新对i-1个元素建堆heap_adjust(a,0,i-1);) void CMyDlg:OnButton1()(/ TODO: Add your control notification handler code here UpdateData(TRUE);int s10,a10;input(s);for(int i=0;i<N;i+)( ai=si;)CString str100;for(i=0;i<100;i+) stri=ai;for(i=0;i <N;i+)( stri.Format("%i,",ai);/把整型数组添加到字符串m_shuj

9、u1+=stri;)insertsort(s);m_zhijie1=compare0;m_zhijie2=change0;quicksort(a,0,N-1);m_kuaisu1=compare2;m_kuaisu2=change2;selectsort(s,N);m_jiandan1=compare3;m_jiandan2=change3;shellinsertsort(s,N);m_xier1=compare4;m_xier2=change4;heap_sort(a,N);m_dui1=compare5;m_dui2=change5;bubble_sort(s,N);m_maopao1=compare1;m_maopao2=change1;CString str2100;for(i=0;i<100;i+) str2i=si;for(i=0;i <N;i+) str2i.Format("%i,",ai);把整型数组添加到字符串m_shuju2+=str2i;UpdateData(FALSE);五、调试过程对于算法的设计,除了希尔排序和堆排序之外,都比拟简单,要注意每种排序的起

温馨提示

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

评论

0/150

提交评论