欢迎来到天天文库
浏览记录
ID:11682148
大小:34.50 KB
页数:5页
时间:2018-07-13
《内排序算法c语言数据结构》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、/*数据结构C语言内排序部分算法实现*/#include#includevoidMerge(int*R,intlow,intm,inthigh)/*归并排序*/{inti=low,j=m+1,p=0;int*R1;R1=(int*)malloc((high-low+1)*sizeof(int));if(!R1)return;while(i<=m&&j<=high)R1[p++]=(R[i]<=R[j])?R[i++]:R[j++];while(i<=m)R1[p++]=R[i++
2、];while(j<=high)R1[p++]=R[j++];for(p=0,i=low;i<=high;p++,i++)R[i]=R1[p];}voidMergeSort(intR[],intlow,inthigh){intmid;if(low3、小*/{inti,j,temp;for(i=0;ia[j]){temp=a[i];a[i]=a[j];a[j]=temp;}}voidchoise(int*a,intn)/*选择排序*/{inti,j,k,temp;for(i=0;ia[j])k=j;/*是k总是指向最小元素*/if(i!=k){/*当k!=i是才交换,否则a[4、i]即为最小*/temp=a[i];a[i]=a[k];a[k]=temp;}}}voidinsert(int*a,intn)/*插入排序*/{inti,j,temp;for(i=1;i=0&&temp5、i,j,k,x;k=n/2;/*间距值*/while(k>=1){for(i=k;i=0&&x6、&&mk&&n>i)n--;/*从右到左找比k小的元素*/if(m<=n){/*若找到且满足条件,则交换*/temp=a[m];a[m]=a[n];a[n]=temp;m++;n--;}}while(m<=n);if(mi)quick(a,i,n);}voidbase(int*a,intn,intmaxnumber)/*借口分别是数组首地址和数组中的最大元素*/{intx[maxnumber+27、];inti;for(i=0;i8、inti;for(i=0;i<16;i++)printf("--");printf("数据结构--内排序");for(i=0;i<16;i++)printf("--");printf("");}intmain(){/*给每个函数定义一个相同数组*/inti;initial();inta1[]={98,2,16,83,35,47,18
3、小*/{inti,j,temp;for(i=0;ia[j]){temp=a[i];a[i]=a[j];a[j]=temp;}}voidchoise(int*a,intn)/*选择排序*/{inti,j,k,temp;for(i=0;ia[j])k=j;/*是k总是指向最小元素*/if(i!=k){/*当k!=i是才交换,否则a[
4、i]即为最小*/temp=a[i];a[i]=a[k];a[k]=temp;}}}voidinsert(int*a,intn)/*插入排序*/{inti,j,temp;for(i=1;i=0&&temp5、i,j,k,x;k=n/2;/*间距值*/while(k>=1){for(i=k;i=0&&x6、&&mk&&n>i)n--;/*从右到左找比k小的元素*/if(m<=n){/*若找到且满足条件,则交换*/temp=a[m];a[m]=a[n];a[n]=temp;m++;n--;}}while(m<=n);if(mi)quick(a,i,n);}voidbase(int*a,intn,intmaxnumber)/*借口分别是数组首地址和数组中的最大元素*/{intx[maxnumber+27、];inti;for(i=0;i8、inti;for(i=0;i<16;i++)printf("--");printf("数据结构--内排序");for(i=0;i<16;i++)printf("--");printf("");}intmain(){/*给每个函数定义一个相同数组*/inti;initial();inta1[]={98,2,16,83,35,47,18
5、i,j,k,x;k=n/2;/*间距值*/while(k>=1){for(i=k;i=0&&x6、&&mk&&n>i)n--;/*从右到左找比k小的元素*/if(m<=n){/*若找到且满足条件,则交换*/temp=a[m];a[m]=a[n];a[n]=temp;m++;n--;}}while(m<=n);if(mi)quick(a,i,n);}voidbase(int*a,intn,intmaxnumber)/*借口分别是数组首地址和数组中的最大元素*/{intx[maxnumber+27、];inti;for(i=0;i8、inti;for(i=0;i<16;i++)printf("--");printf("数据结构--内排序");for(i=0;i<16;i++)printf("--");printf("");}intmain(){/*给每个函数定义一个相同数组*/inti;initial();inta1[]={98,2,16,83,35,47,18
6、&&mk&&n>i)n--;/*从右到左找比k小的元素*/if(m<=n){/*若找到且满足条件,则交换*/temp=a[m];a[m]=a[n];a[n]=temp;m++;n--;}}while(m<=n);if(mi)quick(a,i,n);}voidbase(int*a,intn,intmaxnumber)/*借口分别是数组首地址和数组中的最大元素*/{intx[maxnumber+2
7、];inti;for(i=0;i8、inti;for(i=0;i<16;i++)printf("--");printf("数据结构--内排序");for(i=0;i<16;i++)printf("--");printf("");}intmain(){/*给每个函数定义一个相同数组*/inti;initial();inta1[]={98,2,16,83,35,47,18
8、inti;for(i=0;i<16;i++)printf("--");printf("数据结构--内排序");for(i=0;i<16;i++)printf("--");printf("");}intmain(){/*给每个函数定义一个相同数组*/inti;initial();inta1[]={98,2,16,83,35,47,18
此文档下载收益归作者所有