数据结构重要排序算法C++.docx
- 文档编号:10071556
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:13
- 大小:16.52KB
数据结构重要排序算法C++.docx
《数据结构重要排序算法C++.docx》由会员分享,可在线阅读,更多相关《数据结构重要排序算法C++.docx(13页珍藏版)》请在冰点文库上搜索。
数据结构重要排序算法C++
数据结构——重要排序算法(C++)
目录
冒泡排序2
插入排序3
桶排序3
合并排序6
选择排序7
希尔排序8
数据结构——重要排序算法(C++)
冒泡排序
#include
#defineLEN9
usingnamespacestd;
intmain()
{
intnArray[LEN];
for(inti=0;i { nArray[i]=LEN-i;//赋初值 } cout<<"原始数据为: "< for(intj=0;j { cout< } cout< for(intm=LEN-1;m>0;m--) { inttemp; for(intn=0;n { if(nArray[n]>nArray[n+1]) { temp=nArray[n]; nArray[n]=nArray[n+1]; nArray[n+1]=temp; } } } cout<<"排序结果: "< for(i=0;i { cout< } return0; } 插入排序 voidInsertSort(chararray[],unsignedintn) { inti,j; inttemp; for(i=1;i { temp=array[i];//storetheoriginalsortedarrayintemp for(j=i;j>0&&temp array[j]=array[j-1];//alllargerelementsaremovedonepottotheright } array[j]=temp; } } 桶排序 #include usingnamespacestd; inta[]={1,255,8,6,25,47,14,35,58,75,96,158,657}; constintlen=sizeof(a)/sizeof(int); intb[9][len]={0};//将b全部置0 voidbucketSort(inta[]);//桶排序函数 voiddistributeElments(inta[],intb[9][len],intdigits); voidcollectElments(inta[],intb[9][len]); intnumOfDigits(inta[]); voidzeroBucket(intb[9][len]);//将b数组中的全部元素置0 intmain() { cout<<"原始数组: "; for(inti=0;i cout< cout< bucketSort(a); cout<<"排序后数组: "; for(i=0;i cout< cout< return0; } voidbucketSort(inta[]) { intdigits=numOfDigits(a); for(inti=1;i<=digits;i++) { distributeElments(a,b,i); collectElments(a,b); if(i! =digits) zeroBucket(b); } } intnumOfDigits(inta[]) { intlargest=0; for(inti=0;i if(a[i]>largest) largest=a[i]; intdigits=0;//digits为最大值的位数 while(largest) { digits++; largest/=10; } returndigits; } voiddistributeElments(inta[],intb[9][len],intdigits) { intdivisor=10;//除数 for(inti=1;i { divisor*=10; for(intj=0;j { intnumOfDigist=(a[j]%divisor-a[j]%(divisor/10))/(divisor/10); //numOfDigits为相应的(divisor/10)位的值,如当divisor=10时,求的是个位数 intnum=++b[numOfDigist][0]; //用b中第一列的元素来储存每行中元素的个数 b[numOfDigist][num]=a[j]; } } voidcollectElments(inta[],intb[9][len]) { intk=0; for(inti=0;i<=9;i++) for(intj=1;j<=b[i][0];j++) a[k++]=b[i][j]; } voidzeroBucket(intb[][len]) { for(inti=0;i<9;i++) for(intj=0;j b[i][j]=0; } 合并排序 #include template template template voidmain() { intconstn(5); inta[n]; cout<<"Input"< "; for(inti=0;i cin>>a[i];
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 重要 排序 算法 C+