资源预览内容
第1页 / 共25页
第2页 / 共25页
第3页 / 共25页
第4页 / 共25页
第5页 / 共25页
第6页 / 共25页
第7页 / 共25页
第8页 / 共25页
第9页 / 共25页
第10页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
c ffiA 9sxaasaml.lnDiil璽耶2倂翌羽3諭番4番番5書番6IS盖7ltf番8母Is刘I5IW肅盛辖羽9專番浊 nc-udeASsiohv5r main。宀5r i、j、n、a100L rempj wh=e(scanf(=%d=n) 一 H EOF) 宀for(HojAa+)scanf(=%d=ais-duJE H 曰e 苕e丄I+ne 77+ne n duJEmeHb-KH+neH+ne 川曰 e 蝕4二 (口+吕人好)七 屈呱a一 塹(+?luvoHO&(+TU.YO上)04ouraUHU 一AUpplsvCDpnpu宀oebo宀(urfcuud二二5p%=)上 u_deLE (+XU.YO上)045r i、j、n、a100L L remp wh=e(scanf(=%d=n) 一 H EOF) 宀for(HojAa+)scanf(=%d=aisfor(HojAn?+) n1宀r Hi;rorcjl!.+l;An;j+)-洒i洱旦+l2a?l召倂馴、毎磐山旦二型 宀.svremp H am 岂H刍; asH rempj for(HojAa+) Pr1nrr(=%d pwn=); return 03.快速排序1.假设数组为 an;2.第一次排序过程如下:取x = 0( a0为中车由);i=0 (第一个元素下标),j=n-1(最后一个元素下标);重复下面过程:(直到 i=j)从aj起,向前找小于ax的元素,同时j-,找到后,aj与ax交换,x=j;从ai起,向后找大于ax的元素,同时i+,找到后,ai与ax交换,x=i;3.注意快排函数是迭代函数,必须要有结束条件 (因为忽略结束条件,调试了很久)4再对alowax-l、ax+lahigh分别调用快排函数#includevoid quicksort(int a,int low,int high);int main()int i, n, a100;while(scanf(%d,&n)!=EOF)for(i=0;i!8x吐!G)oj匕動欧伞阳昭也胸=ixe=r|eQjojfdiU941=x 炯1 = 7mo|=!)ui 阜糜逊第士團日un”均滲車芳胡糞些/Mgai (h6ii=p!nb piOA fO un】B“ujiu!d爼!既P%“)J】U!d (+ifuifo=!)JOj :(l:-uoe)losp!nb !eg“P% 仙 UQSai = aj;aj = temp;x = i;elsebreak;/跳出本次 while 循环quicksort(a,low,x-1);quicksort(a,x+1,high);4. 插入排序法#includevoid show(int a,int n) /输出数组 int i;for(i=0;in;i+)printf(%d ,ai); printf(n);void insertsort(int a,int n);int main()(u 4U_)4OS4USU 一 p_ oebo宀-(urD)MOUS-(urutospCDsu- 二二 e-p%=)4uss(+XU.YO上)04(LL.0 山上(u 一&讣殳?龙)。4二 二 euduJE) osoonuQUCO番Kw、蛊養二7THE一匸+壮、vHgK殴二(丄OH 空曰 e V 三5。4三 eV、/ (+XU.YX上)04-dujor一 4U 一aj=temp;5. shell 排序法#includevoid show(int a,int n) /输出数组 int i;for(i=0;in;i+)printf(%d ,ai); printf(n);void shellsort(int a,int n);int main()int i, n, a100;while(scanf(%d,&n)!=EOF)for(i=0;i|-dluE、-、r r 4U-(u 4U口 e 4umos=s po宀oebo宀-(urD)MOUS_(ua3)4os=2)执行如下几步:(3个及以上)mid = (0+n)/2;mergesort(a,low,mid-1);mergesort(a,mid,high);进行本轮二路归并;bsort(int low,int mid,int high);i=low,j=mid;while(imid&j=ahigh) 交换 alow,ahigh;#includeint other100;void exchange(int *a,int *b)int t=*a;*a=*b;*b=t;void show(int a,int n) /输出数组int i;for(i=0;in;i+)printf(%d ,ai);printf(n);void mergesort(int a,int low,int high);int main()int i, n, a100;while(scanf(%d,&n)!=EOF)for(i=0;i2)/含 3 个以上int mid = (high+low)/2;mergesort(a,low,mid);mergesort(a,mid+1,high);int i=low, j=mid+1, k=low;while(i=mid&j=high)if(aiaj)otherk+=aj+;while(i=mid)otherk+=ai+;while(j=high)otherk+=aj+;for(i=low;iahigh)exchange(a+low,a+high);fq* 弓一 一 (q* lure* 4uBuelpxe p_ (urfcuud 二二5p%=)上 u_d(+XU.YO上)04= 一翱软田霹二(u 口 e 4U 一) MOE po AUpplsvCDpnpu r ffiw_zM 宀&ffl爭霹、删)0耀6z一s 口 e 4umosde J津口 e 遇、()4snpede 旺理邀6(eez一s 4U口 e -u 一) dep=nq J津 sts二 2空耀6金禺一s 4U:Sluse 4umsnpedeeln(W)-K叢量 SH8ftt二void heapadjust(int a,int i,int sizea)int maxi=i;int l=2*i+1;int r=2*i+2;if(iv(sizea/2)ai为叶结点,则不需要调整if(lv=(
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号