还剩2页未读,继续阅读
文本内容:
四种排序演示程序C++#include iostream#includectimeusing namespacestd;void maopaointa[]冒泡排序:cout“vvendl;〈”数组中的数的“coutv endl;int ij,t;fori=0;i10;i++couta[i]coutendl;”原理个数据,共比较趟,每趟使一个大数下沉”cout109endl;fori=0;i9;i++{第〈趟cout“:“endl;”相邻数字比较,若左边数字大于右边,则交换顺序“cout endl;forj=0;j9-i;j++{ifa[j]a[j+l]口=t==a[j+l],a[j+t;与“交换“couta[j+l]a[j]endl;}得到顺序:“cout”endl;forint z=0;z10;z++couta[z]共比较次使得较大数下沉:cout“coutendl;完成冒泡排序cout”endl;void xuanzeint b[]”选择排序:cout“endl;〈”数组中的数的“conk endl;;int i,j,t,kfori=0;i10;i++coutb[i]coutendl;”原理个数据,共比较趟,在每趟区间中将最小数下标记录在中,若不为cout109k k将⑴与交换,始终保持⑴为该趟最小值1,b b[k]b vendl;fori=0;i9;i++{〈第“趟“:““区间为到coutv i+l“iv”10endl;初始k=i;cout k=iendl;forj=i+l;j10;j++{「小于更改为ifb[j]b[k]{k=j;cout”b j”]b[k],k“jendl;}与本趟第一个数,即「ifi!=k{t=b[i],b[i]=b[k]b[k]=t;cout«b[j]b i1],不等,交换位置“endl;}得到顺序”cout endl;forint z=0;z10;z++coutb[z]coutendl;上浮到第位coutb[i]i+l endl;void charuint cQ{”插入排序cout endl;”数组中的数据:“cout endl;int i,t,k;fori=0;i10;i++coutc[i]coutendl;”原理个数据,走趟,以《”为初始序列,每趟插入一个数字,cout109c
[0]=”c
[0]按从小到大的顺序排列”endl;“以代表与所插入元素左相邻的元素,进行循环比较cout k“endl;fori=l;i10;i++{第趟cout i“:“endl;插入cout c[i]=c[i]endl;”此时序列顺序为;coutforint m=0;mi+l;m++coutc[m]coutendl;;t=c[i],k=i-lwhiletc[k]{coutk=kendl;,,大于cout c[k]=c[k]=c[k]“乜々]二明”,:「向右移动一个单位”向1]01;c[k+l]=c[k],k--;ifk==-lbreak;c[k+l]=t;”将口插入下标为的位置cout”endl;得到顺序”cout endl;forint z=0;zi+l;z++coutc[z]coutendl;void kuaisuint dQJnt n,int left,int rightintifleftright{i=left;j=right+l;whilel{”从「『”开始向右搜索,直到找到大于的数cout s=d i”d[i]s endl;whilei+lnd[++i]d[left];找至,,cout”ij d[i]=d[i]^Td[left]=d[left]endl;”从二仇”加-,,开始向左搜索,直到找到小于的数cout s1”]=”1]sendl;whileO-l-ld[--j]d[left];找到cout d[j]=d[j]/J\T d[right]=d[right]endl;因为大于尸所以退出本次搜索ifi=j{cout i=”i”“endl;break;}因为”小于尸所以将,,「二cout i=i j:a=d[«i«]=«d[i]«-^d j]〈”交换d[j]v“vvendl;t=d[i],d[i]==t;”得到顺序:cout endl;forint m=0;m10;m++coutd[m]coutendl;coutendl;将左边界,,「二“交换cout d[left«]=d[left]«-^d j]d[j]endl;t=d[left],d[left]=d[j],d[j]=t;”对关键数据=”进行左半部分和右半部分递归cout“endl;”得到顺序cout endl;forint m=0;m10;m++coutd[m]coutendl;coutendl;kuaisud n,left,j-l;1kuaisud,nj+l,right;int maininta
[10]={48,30,27,9,16,21,3,80,100,1;maopaoa;coutendl;coutendl;intb
[10]={22,46,51,75,38,11,3,80,100,1;xuanzeb;coutendl;coutendl;intc
[10]={21,17,44,1,6,66,3,70,52,99};charuc;coutendl;coutendl;intd
[10]={48,30,27,9,16,21,3,80,100,l;coutendl;快速排序;“coutvv”vvendl;”原理把数据左边界作为关键数据,向右寻找一个比它大的数同时把数据右边cout al,界作为关键数据,寻找一个比它小的数若的下标大于则交换顺序,进行递归,多次a2,al a2,循环,实现排序”endl;kuaisud,10,0,9;最终得到顺序cout””endl;forint m=0;m10;m++couta[m]coutendl;return0;}。
个人认证
优秀文档
获得点赞 0