C++惯用排序法研究
2008-11-04
第一引见一个计算时间差的函数,它在头资料中定义,于是乎我们只需这么定义2个变量,再相减就可以计算时间差了。
函数起头加上
clock_t start = clock();
函数煞尾加上
clock_t end = clock();
于是乎时间差为: end - start
不过这不精确的 累次运行时间是不同的 和CPU 历程相关吧
(先小结一下子:以次算法以时间和空间以及编码难度,以及实用性方面来看,高速排序法是最优秀的!推荐!~
但是希尔排序又是最经典的一个,之所以提议优先看这2个排序算法)
排序算法是一种根本而且惯用的算法。因为实际工作中处置的数量伟大,之所以排序算法
对算法自身的速度要求很高。
而通常我们所谓的算法的性能重要是指算法的复杂度,通常用O步骤来示意。在后面我将
付出详细的说明。
关于排序的算法我想先做1点容易的引见,也是给这篇稿件理一个大纲。
我将依照算法的复杂度,从简略到难来分析算法。
第部分是简略排序算法,后边你将看到他们的共同点是算法复杂度为O(N*N)(由于没
施用word,之所以没法打出上标和下标)。
第二一部分是高级排序算法,复杂度为O(Log二(N))。这边我们只引见一种算法。此外再有几种
算法由于牵系树与堆的概念,之所以这边不于议论。
第三一部分相仿动脑筋。这边的两种算法并不是最好的(甚至有最慢的),但是算法自身比较
奇特,值得参照(编程的视角)。与此同时也可以让我们从此外的视角来认识这个问题。
第四一部分是我送给大伙的一个餐后的甜食——一个基于模板的通用高速排序。因为是模板函数
可以对任何数据门类排序(对不起,里头应用了一些论坛专家的呢称)。
现时,让我们开始吧:
1、容易排序算法
因为程序比较简单,之所以没加什么诠释。全部的程序都付出了完整的运作代码,并在我的VC环境
停运作经过。由于没牵系MFC和WINDOWS的内容,所以在BORLAND C++的平台上应当也不会有什么
问题的。在代码的后边付出了运作进程表示,希望对了解有相助。
一.冒泡法:
这是最原始,也是尽人皆知的最慢的算法了。他的名字的由来由于它的工作总的看像样冒泡:
#include
void BubbleSort(int* pData,int Count)
{
int iTemp;
for(int i=一;i {
for(int j=Count-一;j>=i;j--)
C++惯用排序法研究
最新推荐文章于 2024-08-25 06:11:42 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)