C常用排序:冒泡+选择+快速+希尔…….doc

C常用排序:冒泡+选择+快速+希尔…….doc

ID:55968488

大小:34.50 KB

页数:17页

时间:2020-06-18

C常用排序:冒泡+选择+快速+希尔…….doc_第1页
C常用排序:冒泡+选择+快速+希尔…….doc_第2页
C常用排序:冒泡+选择+快速+希尔…….doc_第3页
C常用排序:冒泡+选择+快速+希尔…….doc_第4页
C常用排序:冒泡+选择+快速+希尔…….doc_第5页
资源描述:

《C常用排序:冒泡+选择+快速+希尔…….doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、C++常用排序法研究 首先介绍一个计算时间差的函数,它在头文件C++常用排序法研究 首先介绍一个计算时间差的函数,它在头文件C++常用排序法研究 首先介绍一个计算时间差的函数,它在头文件C++常用排序法研究 首先介绍一个计算时间差的函数,它在头文件C++常用排序法研究 首先介绍一个计算时间差的函数,它在头文件中定义,于是我们只需这样定义2个变量,再相减就可以计算时间差了。函数开头加上     clock_t   start   =   clock();         函数结尾加上  

2、   clock_t   end   =   clock();         于是时间差为: end - start  不过这不精确的   多次运行时间是不同的   和CPU   进程有关吧(先总结一下:以下算法以时间和空间以及编码难度,以及实用性方面来看,快速排序法是最优秀的!推荐!~但是希尔排序又是最经典的一个,所以建议优先看这2个排序算法)排序算法是一种基本并且常用的算法。由于实际工作中处理的数量巨大,所以排序算法 对算法本身的速度要求很高。   而一般我们所谓的算法的性能主要是指算法的复杂度,一般用O方法来表示。在后面我将 给出详细的说明。   对于排序

3、的算法我想先做一点简单的介绍,也是给这篇文章理一个提纲。   我将按照算法的复杂度,从简单到难来分析算法。   第一部分是简单排序算法,后面你将看到他们的共同点是算法复杂度为O(N*N)(因为没有 使用word,所以无法打出上标和下标)。   第二部分是高级排序算法,复杂度为O(Log2(N))。这里我们只介绍一种算法。另外还有几种 算法因为涉及树与堆的概念,所以这里不于讨论。   第三部分类似动脑筋。这里的两种算法并不是最好的(甚至有最慢的),但是算法本身比较 奇特,值得参考(编程的角度)。同时也可以让我们从另外的角度来认识这个问题。   第四部分是我送给大家的

4、一个餐后的甜点——一个基于模板的通用快速排序。由于是模板函数 可以对任何数据类型排序(抱歉,里面使用了一些论坛专家的呢称)。      现在,让我们开始吧:    一、简单排序算法 由于程序比较简单,所以没有加什么注释。所有的程序都给出了完整的运行代码,并在我的VC环境 下运行通过。因为没有涉及MFC和WINDOWS的内容,所以在BORLAND C++的平台上应该也不会有什么 问题的。在代码的后面给出了运行过程示意,希望对理解有帮助。 1.冒泡法: 这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡: #include 

5、m.h> void BubbleSort(int* pData,int Count) {   int iTemp;   for(int i=1;i=i;j--)     {       if(pData[j]

6、() {   int data[] = {10,9,8,7,6,5,4};   BubbleSort(data,7);   for (int i=0;i<7;i++)     cout<10,9,7,8->10,7,9,8->7,10,9,8(交换3次) 第二轮:7,10,9,8->7,10,8,9->7,8,10,9(交换2次) 第一轮:7,8,10,9->7,8,9,10(交换1次) 循环次数:6次 交换次数:6次 其他: 第一轮:8,10,7

7、,9->8,10,7,9->8,7,10,9->7,8,10,9(交换2次) 第二轮:7,8,10,9->7,8,10,9->7,8,10,9(交换0次) 第一轮:7,8,10,9->7,8,9,10(交换1次) 循环次数:6次 交换次数:3次 上面我们给出了程序段,现在我们分析它:这里,影响我们算法性能的主要部分是循环和交换, 显然,次数越多,性能就越差。从上面的程序我们可以看出循环的次数是固定的,为1+2+...+n-1。 写成公式就是1/2*(n-1)*n。 现在注意,我们给出O方法的定义:   若存在一常量K和起点n0,使当n>=n0时,有f(n)<=K*

8、g(n),

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

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

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