c精典语言算法

c精典语言算法

ID:36244181

大小:57.00 KB

页数:20页

时间:2019-05-07

c精典语言算法_第1页
c精典语言算法_第2页
c精典语言算法_第3页
c精典语言算法_第4页
c精典语言算法_第5页
资源描述:

《c精典语言算法》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、见排序算法(冒泡,选择,快速)的C语言实现要实现这几种算法的关键是要熟悉算法的思想。简单的说,冒泡排序,就如名字说的,每经过一轮排序,将最大的数沉到最底部。选择排序的思想是将整个数列,分为有序区和无序区。每轮排序,将无序区里的最小数移入到有序区。快速排序的思想是以一个数为中心,通常这个数是该数列第一个数,将整个数列分为两个部分,一个部分是大于这个数的区域,一个部分是小于这个数的区域。然后再对这两个部分的数列分别排序。如果将数列分为两个部分是通过,一方面从后向前的搜索,另一方面从前向后的搜索来实现的

2、。具体的参考后面的来自百度百科的文档。从这几个简单的排序算法上看,有几个特点:冒泡排序是最简单的,也是最稳定的算法。选择排序不太稳定,但是效率上较冒泡还是有较大的提升。其实在分析的过程中就能发现,选择排序和冒泡排序相比,中间少了很多的交换过程,和比较的次数,这个应该是时间较少的原因。选择排序能够满足一般的使用。当比较的数超过以万为单位时,选择排序也还是要一点时间的。快速排序据说是最快的。这个可以从思想上看的出来。,当记录较多的时候,快速排序的比较循环次数比上面2个都要少。但是在具体的实现过程中,并

3、不见得如此。这是因为递归效率的低下导致的。当然,估计在实际使用过的过程,快速排序估计都会使用非递归操作栈的方式来实现。那样应该会效率高伤不少。估计我会在后期出一个快速排序的非递归实现来真正比较它们3个性能。在下面的程序中,可以通过调高N的数字就能看的出来冒泡排序和选择排序性能的差异。在N较小,大概几百的时候,是看不出来的。N较大的的时候,比如N=1000或者N=10000的时候,快速排序的递归实现就会卡死在那里了,出不了结果。以下是具体的代码:/***常见排序算法比较*/#include

4、o.h>#include#include#include#defineN10#defineDemo1voidBubbleSort(intarr[],intn);voidSelectSort(intarr[],intn);voidQuickSort(intarr[],intn);voidPrintArray(intarr[],intn);voidGenerateArray(intarr[],intn);intmain(intargc,char

5、*argv[]){intarr[N];GenerateArray(arr,N);#ifDemoprintf("Beforethebubblesort------------------------");PrintArray(arr,N);#endifprintf("StartBubblesort----------------------");clock_tstart_time1=clock();//开始计时BubbleSort(arr,N);clock_tend_time1=clock(

6、);//结束计时printf("Runningtimeis:%lfms",(double)(end_time1-start_time1)/CLOCKS_PER_SEC*1000);//输出运行时间#ifDemoprintf("Afterthebubblesort------------------------");PrintArray(arr,N);#endifprintf("---------------------------------------------------------

7、--");sleep(1000);//单位是毫秒即千分之一秒GenerateArray(arr,N);#ifDemoprintf("Beforetheselectionsort------------------------");PrintArray(arr,N);#endifprintf("Startselectionsort----------------------");clock_tstart_time2=clock();//开始计时SelectSort(arr,N);cloc

8、k_tend_time2=clock();//结束计时printf("Runningtimeis:%lfms",(double)(end_time2-start_time2)/CLOCKS_PER_SEC*1000);//输出运行时间#ifDemoprintf("Aftertheselectionsort------------------------");PrintArray(arr,N);#endifprintf("---------------------------

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

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

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