欢迎来到天天文库
浏览记录
ID:38369198
大小:42.00 KB
页数:10页
时间:2019-06-11
《排序算法多种算法实现插入 堆 希尔 快排》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include#include#include////实现简单选择排序、直接插入排序和冒泡排序voidSelectSort(){intm,t;inta[]={8,2,4,3,6},n=5;for(inti=0;ia[j]){min=a[j];m=j;}}if(a[i]!=min){t=a[i];a[i]=a[m];a[m]=t;}}//打印for(i=0;i2、("%d",a[i]);printf("");}//实现简单的数组的插入排序/voidinserssort(){intx;inta[]={2,3,4,6,8},n=5;printf("请输入要插入的数据");scanf("%d",&x);inttem=x;for(inti=0;ia[i]&ξj--)a[j+1]=a[j];a[i+1]=tem;for(i=0;i3、}//实现简单的数组的冒泡排序/voidmaopao()//冒泡{inta[]={8,2,4,3,6},n=5;inti,j,temp;for(i=1;ia[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}for(i=0;i4、;printf("希尔排序为:");Gap=n/2;while(Gap>0){for(i=Gap;i=0)if(a[j]>a[j+Gap]){temp=a[j];a[j]=a[j+Gap];a[j+Gap]=temp;j=j-Gap;}elsebreak;}Gap/=2;}for(i=0;i5、ion函数的声明intm=5;//(自定义简单的数组的长度)voidSwap(int*i,int*j){int*temp;temp=i;i=j;j=temp;}voidquicksort(intn[],intleft,intright){intdp;if(left6、,intright){intlo,hi,pivot,t;pivot=n[left];lo=left-1;hi=right+1;while(lo+1!=hi){if(n[lo+1]<=pivot)lo++;elseif(n[hi-1]>pivot)hi--;else{t=n[lo+1];n[++lo]=n[hi-1];n[--hi]=t;}}n[left]=n[lo];n[lo]=pivot;returnlo;}//////堆排序的简单数组实现voidHeapAdjust(intarray[],inti,intnLength){intnCh7、ild,nTemp;for(nTemp=array[i];2*i+1array[nChild])++nChild;//如果较大的子结点大于父结点那么把较大的子结点往上移动,替换它的父结点if(nTemp8、的元素值放到合适的位置array[i]=nTemp;}//堆排序算法voidHeapSort(intarray[],intlength){//调整序列的前半部分元素,调整完之后第一个元素是序列
2、("%d",a[i]);printf("");}//实现简单的数组的插入排序/voidinserssort(){intx;inta[]={2,3,4,6,8},n=5;printf("请输入要插入的数据");scanf("%d",&x);inttem=x;for(inti=0;ia[i]&ξj--)a[j+1]=a[j];a[i+1]=tem;for(i=0;i3、}//实现简单的数组的冒泡排序/voidmaopao()//冒泡{inta[]={8,2,4,3,6},n=5;inti,j,temp;for(i=1;ia[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}for(i=0;i4、;printf("希尔排序为:");Gap=n/2;while(Gap>0){for(i=Gap;i=0)if(a[j]>a[j+Gap]){temp=a[j];a[j]=a[j+Gap];a[j+Gap]=temp;j=j-Gap;}elsebreak;}Gap/=2;}for(i=0;i5、ion函数的声明intm=5;//(自定义简单的数组的长度)voidSwap(int*i,int*j){int*temp;temp=i;i=j;j=temp;}voidquicksort(intn[],intleft,intright){intdp;if(left6、,intright){intlo,hi,pivot,t;pivot=n[left];lo=left-1;hi=right+1;while(lo+1!=hi){if(n[lo+1]<=pivot)lo++;elseif(n[hi-1]>pivot)hi--;else{t=n[lo+1];n[++lo]=n[hi-1];n[--hi]=t;}}n[left]=n[lo];n[lo]=pivot;returnlo;}//////堆排序的简单数组实现voidHeapAdjust(intarray[],inti,intnLength){intnCh7、ild,nTemp;for(nTemp=array[i];2*i+1array[nChild])++nChild;//如果较大的子结点大于父结点那么把较大的子结点往上移动,替换它的父结点if(nTemp8、的元素值放到合适的位置array[i]=nTemp;}//堆排序算法voidHeapSort(intarray[],intlength){//调整序列的前半部分元素,调整完之后第一个元素是序列
3、}//实现简单的数组的冒泡排序/voidmaopao()//冒泡{inta[]={8,2,4,3,6},n=5;inti,j,temp;for(i=1;ia[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}for(i=0;i4、;printf("希尔排序为:");Gap=n/2;while(Gap>0){for(i=Gap;i=0)if(a[j]>a[j+Gap]){temp=a[j];a[j]=a[j+Gap];a[j+Gap]=temp;j=j-Gap;}elsebreak;}Gap/=2;}for(i=0;i5、ion函数的声明intm=5;//(自定义简单的数组的长度)voidSwap(int*i,int*j){int*temp;temp=i;i=j;j=temp;}voidquicksort(intn[],intleft,intright){intdp;if(left6、,intright){intlo,hi,pivot,t;pivot=n[left];lo=left-1;hi=right+1;while(lo+1!=hi){if(n[lo+1]<=pivot)lo++;elseif(n[hi-1]>pivot)hi--;else{t=n[lo+1];n[++lo]=n[hi-1];n[--hi]=t;}}n[left]=n[lo];n[lo]=pivot;returnlo;}//////堆排序的简单数组实现voidHeapAdjust(intarray[],inti,intnLength){intnCh7、ild,nTemp;for(nTemp=array[i];2*i+1array[nChild])++nChild;//如果较大的子结点大于父结点那么把较大的子结点往上移动,替换它的父结点if(nTemp8、的元素值放到合适的位置array[i]=nTemp;}//堆排序算法voidHeapSort(intarray[],intlength){//调整序列的前半部分元素,调整完之后第一个元素是序列
4、;printf("希尔排序为:");Gap=n/2;while(Gap>0){for(i=Gap;i=0)if(a[j]>a[j+Gap]){temp=a[j];a[j]=a[j+Gap];a[j+Gap]=temp;j=j-Gap;}elsebreak;}Gap/=2;}for(i=0;i5、ion函数的声明intm=5;//(自定义简单的数组的长度)voidSwap(int*i,int*j){int*temp;temp=i;i=j;j=temp;}voidquicksort(intn[],intleft,intright){intdp;if(left6、,intright){intlo,hi,pivot,t;pivot=n[left];lo=left-1;hi=right+1;while(lo+1!=hi){if(n[lo+1]<=pivot)lo++;elseif(n[hi-1]>pivot)hi--;else{t=n[lo+1];n[++lo]=n[hi-1];n[--hi]=t;}}n[left]=n[lo];n[lo]=pivot;returnlo;}//////堆排序的简单数组实现voidHeapAdjust(intarray[],inti,intnLength){intnCh7、ild,nTemp;for(nTemp=array[i];2*i+1array[nChild])++nChild;//如果较大的子结点大于父结点那么把较大的子结点往上移动,替换它的父结点if(nTemp8、的元素值放到合适的位置array[i]=nTemp;}//堆排序算法voidHeapSort(intarray[],intlength){//调整序列的前半部分元素,调整完之后第一个元素是序列
5、ion函数的声明intm=5;//(自定义简单的数组的长度)voidSwap(int*i,int*j){int*temp;temp=i;i=j;j=temp;}voidquicksort(intn[],intleft,intright){intdp;if(left6、,intright){intlo,hi,pivot,t;pivot=n[left];lo=left-1;hi=right+1;while(lo+1!=hi){if(n[lo+1]<=pivot)lo++;elseif(n[hi-1]>pivot)hi--;else{t=n[lo+1];n[++lo]=n[hi-1];n[--hi]=t;}}n[left]=n[lo];n[lo]=pivot;returnlo;}//////堆排序的简单数组实现voidHeapAdjust(intarray[],inti,intnLength){intnCh7、ild,nTemp;for(nTemp=array[i];2*i+1array[nChild])++nChild;//如果较大的子结点大于父结点那么把较大的子结点往上移动,替换它的父结点if(nTemp8、的元素值放到合适的位置array[i]=nTemp;}//堆排序算法voidHeapSort(intarray[],intlength){//调整序列的前半部分元素,调整完之后第一个元素是序列
6、,intright){intlo,hi,pivot,t;pivot=n[left];lo=left-1;hi=right+1;while(lo+1!=hi){if(n[lo+1]<=pivot)lo++;elseif(n[hi-1]>pivot)hi--;else{t=n[lo+1];n[++lo]=n[hi-1];n[--hi]=t;}}n[left]=n[lo];n[lo]=pivot;returnlo;}//////堆排序的简单数组实现voidHeapAdjust(intarray[],inti,intnLength){intnCh
7、ild,nTemp;for(nTemp=array[i];2*i+1array[nChild])++nChild;//如果较大的子结点大于父结点那么把较大的子结点往上移动,替换它的父结点if(nTemp8、的元素值放到合适的位置array[i]=nTemp;}//堆排序算法voidHeapSort(intarray[],intlength){//调整序列的前半部分元素,调整完之后第一个元素是序列
8、的元素值放到合适的位置array[i]=nTemp;}//堆排序算法voidHeapSort(intarray[],intlength){//调整序列的前半部分元素,调整完之后第一个元素是序列
此文档下载收益归作者所有