欢迎来到天天文库
浏览记录
ID:39496793
大小:73.51 KB
页数:6页
时间:2019-07-04
《数据结构实验快速排序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验报告实验名称排序课程名称数据结构与算法实验
2、
3、专业班级:信息安全学号:姓名:一、实验目的掌握快速排序二、实验内容1、快速排序编写程序,实现快速排序。从键盘上输入10个整数,存放在数组中,然后用快速排序法对其从小到大进行排序,并输出排序结果。2、堆排序编写程序,实现堆排序。从键盘上输入10个整数,存放在数组中,然后用堆排序法对其从小到大进行排序,并输出排序结果。三、主要算法与结构//快速排序intQuickSort(inta[],intl,intr){intpivot;//枢轴inti=l;intj=r;inttmp;pivot=a[(l+r)/2];//取数组中间的数为枢轴do{
4、while(a[i]pivot)j--;//j左移if(i<=j){tmp=a[i];a[i]=a[j];a[j]=tmp;//交换a[i]和a[j]i++;j--;}}//堆排序voidsift(inta[],intsize,intp){inttmp=a[p];intchild=2*p+1;while(child5、sebreak;}a[p]=tmp;}voidheapsort(inta[],intn){inti,tmp;for(i=n/2-1;i>=0;i--)sift(a,n,i);for(i=n-1;i>0;i--){tmp=a[0];a[0]=a[i];a[i]=tmp;sift(a,i,0);}}三、实验代码//快速排序#include#defineMAX10intQuickSort(inta[],intl,intr){intpivot;//枢轴inti=l;intj=r;inttmp;pivot=a[(l+r)/2];//取数组中间的数为枢轴do{while(6、a[i]pivot)j--;//j左移if(i<=j){tmp=a[i];a[i]=a[j];a[j]=tmp;//交换a[i]和a[j]i++;j--;}}while(i<=j);if(l7、in>>array[i];QuickSort(array,0,MAX-1);cout<<"快速排序后:"<#defineMAX10usingnamespacestd;voidsift(inta[],intsize,intp){inttmp=a[p];intchild=2*p+1;while(child8、(tmp=0;i--)sift(a,n,i);for(i=n-1;i>0;i--){tmp=a[0];a[0]=a[i];a[i]=tmp;sift(a,i,0);}}voidmain(){inti;inta[MAX];cout<<"请输入"<>a[i];heapsort(a,9、MAX);cout<<"经堆排序后:"<
5、sebreak;}a[p]=tmp;}voidheapsort(inta[],intn){inti,tmp;for(i=n/2-1;i>=0;i--)sift(a,n,i);for(i=n-1;i>0;i--){tmp=a[0];a[0]=a[i];a[i]=tmp;sift(a,i,0);}}三、实验代码//快速排序#include#defineMAX10intQuickSort(inta[],intl,intr){intpivot;//枢轴inti=l;intj=r;inttmp;pivot=a[(l+r)/2];//取数组中间的数为枢轴do{while(
6、a[i]pivot)j--;//j左移if(i<=j){tmp=a[i];a[i]=a[j];a[j]=tmp;//交换a[i]和a[j]i++;j--;}}while(i<=j);if(l7、in>>array[i];QuickSort(array,0,MAX-1);cout<<"快速排序后:"<#defineMAX10usingnamespacestd;voidsift(inta[],intsize,intp){inttmp=a[p];intchild=2*p+1;while(child8、(tmp=0;i--)sift(a,n,i);for(i=n-1;i>0;i--){tmp=a[0];a[0]=a[i];a[i]=tmp;sift(a,i,0);}}voidmain(){inti;inta[MAX];cout<<"请输入"<>a[i];heapsort(a,9、MAX);cout<<"经堆排序后:"<
7、in>>array[i];QuickSort(array,0,MAX-1);cout<<"快速排序后:"<#defineMAX10usingnamespacestd;voidsift(inta[],intsize,intp){inttmp=a[p];intchild=2*p+1;while(child8、(tmp=0;i--)sift(a,n,i);for(i=n-1;i>0;i--){tmp=a[0];a[0]=a[i];a[i]=tmp;sift(a,i,0);}}voidmain(){inti;inta[MAX];cout<<"请输入"<>a[i];heapsort(a,9、MAX);cout<<"经堆排序后:"<
8、(tmp=0;i--)sift(a,n,i);for(i=n-1;i>0;i--){tmp=a[0];a[0]=a[i];a[i]=tmp;sift(a,i,0);}}voidmain(){inti;inta[MAX];cout<<"请输入"<>a[i];heapsort(a,
9、MAX);cout<<"经堆排序后:"<
此文档下载收益归作者所有