c语言各种排序算法的实现.docx

c语言各种排序算法的实现.docx

ID:58819861

大小:15.69 KB

页数:7页

时间:2020-10-25

c语言各种排序算法的实现.docx_第1页
c语言各种排序算法的实现.docx_第2页
c语言各种排序算法的实现.docx_第3页
c语言各种排序算法的实现.docx_第4页
c语言各种排序算法的实现.docx_第5页
资源描述:

《c语言各种排序算法的实现.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、在学习算法的过程中,排序算法是很基础的。下面我用C语言实现了5中基础的排序算法:插入排序、选择排序、冒泡排序、并归排序、快速排序。1.>插入排序插入排序很简单,在《算法导论》中的解释是这样的。插入排序的工作机理与很多人打牌时,整理手上的牌的做法差不多。开始的时候我们的左手是空的。接着我们从桌面上一张一张的摸牌,并将它放到左手的一个正确的位置上。为了找到这个正确的位置,要将它与左手的牌从右到左地进行比较,无论在什么时候左手的牌都是排好序的。很简单吧,不过当初为了理解这个算法也花了一点时间,下面是C语言对插入排序的一个简单实现:帮助1

2、2345678910111213//插入排序intinsert_sort(inta[],intsize){    inti,j,temp;    for(i=1;i=0&&temp.选择排序选择排序的工作原理是这样的,对数据进行遍历,找出

3、最小的元素(升序)作为第一个元素,再在剩下的数中找出最小的作为第二个元素,一直循环下去,最后的你会发现这个数组中的数据已经排好序了。下面是C语言的选择排序的一个简单实现:帮助12//选择排序 intselect_sort(inta[],intsize)3456789101112131415{    inti,j,temp;    for(i=0;ia[j]){                //交换位置     

4、          temp=a[i];                a[i]=a[j];                a[j]=temp;             }    }    return0;}//endselect_sort3>.冒泡排序冒泡排序是重复交换相邻的两个反序元素。它的工作工作机理我觉得跟选择排序差不多。因为在第一个遍历整个数组交换反序元素之后,数组的第一个元素就已经是整个数组中最小的元素了。下面是C语言实现的一个冒泡排序。帮助123456789101112//冒泡排序intbubble_sort(int

5、data[],intsize){    inti,j,temp;    for(i=0;ii;j--)            if(data[j].并归排序并归排序,你也可以叫它合并排序。它采用

6、了递归的思想,将数据分成两个部分,将这两个部分排好序之后再进行合并,一直重复这个过程,得出最后的结果。可能说的比较抽象,大家看下面的代码。帮助123456789101112131415161718192021222324252627282930//合并两个已经排好的结果 intmerg_result(intdata[],intstart,intmiddle,intend){    ints1,s2,        i,i1,i2;    s1=middle-start+1;    s2=end-middle;          i

7、1=i2=0;    //两个临时的数组    inttemp1[s1],temp2[s2];    //复制数据前后两个段的数据进临时数组   for(i=0;i

8、       if(i1>=s1)31323334353637383940414243444546474849505152535455                break;//无法将两个临时数组的最后一个元素设为无穷大            

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。