C++惯用排序法研究

本文探讨了C++中常见的四种简单排序算法:冒泡排序、交换排序、选择排序和插入排序,分析了它们的时间复杂度和实际运行中的互换次数。在最坏情况下,这些算法的时间复杂度均为O(n*n),但选择法在某些情况下能减少互换次数,表现出相对较好的性能。
摘要由CSDN通过智能技术生成

 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--)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值