您好,欢迎光临本网站![请登录][注册会员]  
文件名称: 数据结构课程设计C语言版
  所属分类: C
  开发工具:
  文件大小: 143kb
  下载次数: 0
  上传时间: 2010-06-25
  提 供 者: lapu*****
 详细说明: C语言版课程设计 #include #include 产生随机数 #include 调用计算时间的函数 #include using namespace std; 产生随机数,输入产生随机数的个数,范围,即可产生待排数据 void Random(long p[],long n,long a,long b) { long max,min; if(a>b) { max=a-b+1; min=b; } else { max=b-a+1; min=a; } srand((unsigned)time(NULL)); for(long i=1;i<=n;i++) p[i]=rand()%max+min; } 输出排序后的结果;用已检测排序的正确,是否能正确排序 void Print(long p[],long n) { cout<<"\n排序后的结果:"; for(long i=1;i<=n;i++) cout<& lt;p[i]<<' '; } void Initiate(long p[],long q[],long n) { for(long i=1;i<=n;i++) q[i]=p[i]; } 直接插入排序:排序并测试排序过程中的时间消耗 void StraightInsertionSort(long p[],long n) { long *q=new long[n+1]; Initiate(p,q,n); LARGE_INTEGER m_liPerfFreq={0}; QueryPerformanceFrequency(&m_liPerfFreq); LARGE_INTEGER m_liPerfStart={0}; QueryPerformanceCounter(&m_liPerfStart); for(long i=2;i<=n;++i) if(q[i]=high+1;--j) q[j+1]=q[j]; q[high+1]=q[0]; } LARGE_INTEGER liPerfNow={0}; QueryPerformanceCounter(&liPerfNow); double time=liPerfNow.QuadPart - m_liPerfStart.QuadPart; time/=m_liPerfFreq.QuadPart; // Print(q,n); cout<<"\n折半插入排序时间消耗:"<0&&(q[0]q[i+1]) { long t=q[i]; q[i]=q[i+1]; q[i+1]=t; } // Print(q,n); LARGE_INTEGER liPerfNow={0}; QueryPerformanceCounter(&liPerfNow); double time=liPerfNow.QuadPart - m_liPerfStart.QuadPart; time/=m_liPerfFreq.QuadPart; // Print(q,n); cout<<"\n冒泡排序时间消耗:"<q[i+1]) { long t=q[i]; q[i]=q[i+1]; q[i+1]=t; change=1; } high--; for(i=high;i>low;i--) if(q[i]=m) --high; a[low]=a[high]; while(low0) { start=S[top].left; end=S[top].right; top--; long pivot=q[start]; i=start; j=end; for(; ;) { while(i=q[j]) break; q[s]=q[j]; s=j; } q[s]=rc; } void HeapSort(long p[],long n) { long *q=new long[n+1]; Initiate(p,q,n); LARGE_INTEGER m_liPerfFreq={0}; QueryPerformanceFrequency(&m_liPerfFreq); LARGE_INTEGER m_liPerfStart={0}; QueryPerformanceCounter(&m_liPerfStart); or(long i=n/2;i>0;i--) HeapAdjust(q,i,n); for(i=n;i>1;i--) { long t=q[1]; q[1]=q[i]; q[i]=t; HeapAdjust(q,1,i-1); } LARGE_INTEGER liPerfNow={0}; QueryPerformanceCounter(&liPerfNow); double time=liPerfNow.QuadPart - m_liPerfStart.QuadPart; time/=m_liPerfFreq.QuadPart; // Print(q,n); cout<<"\n堆排序时间消耗:"<next=0; tail[k]=head[k]; } for(long i=1;i<=n;i++) { long m=q[i]/L; long k=m%10; p1=new Radix; p1->rc=q[i]; p1->next=0; p2=head[k]; while(p2->next!=0) p2=p2->next; p2->next=p1; tail[k]=p1; } for(k=0;k<10;) { for(long j=k+1;j<10;j++) if(head[j]->next) { // tail[k]->next=head[j]->next; // k=j; break; } tail[k]->next=head[j]->next; k=j; } p1=head[0]->next; i=1; while(p1) { q[i]=p1->rc; p1=p1->next; i++; } L*=10; } LARGE_INTEGER liPerfNow={0}; QueryPerformanceCounter(&liPerfNow); double time=liPerfNow.QuadPart - m_liPerfStart.QuadPart; time/=m_liPerfFreq.QuadPart; /* Print(q,n);*/ cout<<"\n基数排序时间消耗:"<>n>>a>>b; long *p=new long[n+1]; Random(p,n,a,b); // cout<<"产生的随机数:"; // for(int i=1;i<=n;i++) // cout<b) b=a; int radix=0; while(b) { b=b/10; radix++; } StraightInsertionSort(p,n);//直接插入排序 BinaryInsertionSort(p,n);//折半插入排序 // ListInsertionSort(p,n);//表插入排序 ShellSort(p,n);//希尔排序 QuickSort(p,n);//快速排序 // QuickSort(p,1,n); BubbleSort(p,n);//冒泡排序 BubbleSort_2(p,n);//双向起泡排序 SelectSort(p,n);//简单选择排序 HeapSort(p,n);//堆排序 RadixSort(p,n,radix);//基数排序 delete []p; cout<<"\n\t继续请按Y或y:"; cin>>choice; }while(choice=='Y'||choice=='y'); return 0; } ...展开收缩
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: 数据结构课程设计
 输入关键字,在本站1000多万海量源码库中尽情搜索: