2022年排序算法c语言 .pdf
《2022年排序算法c语言 .pdf》由会员分享,可在线阅读,更多相关《2022年排序算法c语言 .pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、#include#define MAX 5000 int RMAX;float compare;/*记录比较次数的全局变量*/float sort;/*记录排序次数的全局变量*/*插入排序*/void Insertsort(int r,int n)int i,j,temp,curr,index;for(i=1;in;i+)temp=ri;/*记录当前值*/curr=index=i;for(j=0;ji;j+)compare+;if(rirj)index=j;/*记录插入位置*/break;while(indexcurr)/*将插入位置到当前位置之间的数后移*/sort+;rcurr=rcurr
2、-1;curr-;rindex=temp;/*当前值到指定位置*/*选择排序*/void SelectSort(int r,int n)int i,j,min,temp;for(i=0;in;i+)for(j=i+1;jrj)/*如果当前元素rj 比索引指向的元素ri 小,换位*/名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 7 页 -sort+;temp=ri;ri=rj;rj=temp;/*希尔排序*/*以 2 的 n 次方为步长*/void ShellSort(int r,int n)int gap,i,j,temp;for(gap=n/2;gap0;gap/=2)/*以
3、 2 的 n 次方为步长*/for(i=gap;i=0)&(rj rj+gap);j-=gap)temp=rj;rj=rj+gap;rj+gap=temp;sort+;compare+;/*以上课给定数为步长*/void ShellSort2(int r,int n)int gaps=1,5,13,43,113;int i,j,k,gap,temp;for(k=0;gapsk=0)/*每次步长变小*/gap=gapsk;for(i=gap;i=gap&rj-gaptemp)/*当前元素以gap 为步长找位置*/compare+;rj=rj-gap;j=j-gap;rj=temp;/*将当前元素
4、放到他的位置*/sort+;/*归并排序*/void MergeSort(int array,int top,int bottom)if(topbottom)int middle=(top+bottom)/2;/*找到中间位置*/sort+;MergeSort(array,top,middle);/*中间前递归,直到剩一个数*/MergeSort(array,middle+1,bottom);/*中间后递归,直到剩一个数*/merge(array,top,middle,bottom);/*排序,合并*/int merge(int array,int top,int middle,int bot
5、tom)int i,j;int tempMAX;int left=top;int right=middle+1;int tempindex=0;int begin=0;int end=0;while(left=middle&right=bottom)compare+;if(arrayleft=arrayright)temptempindex=arrayleft;left+;else 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 7 页 -temptempindex=arrayright;right+;tempindex+;compare+;if(left=middle)begi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年排序算法c语言 2022 排序 算法 语言
限制150内