冒泡排序是蛮力法的另一个经典体现。

算法思想:比较列表中相邻的元素,如果是逆序的话,就交换他们的位置。重复多次之后,最大的元素就排到了最后一个位置。第二遍操作将第二个元素排到了倒数第二个位置上,这样一直依次比较下去,直到  n-1  遍之后,就排好了整个列表。

下面是我的代码实现:C++

#include

using namespace std;

int main()

{

int i,j,temp,N;

cin>>N;

int *Arr=new int[N];

for(i=0;i>Arr[i];

for(i=0;i

{

for(j=0;jArr[j+1])//如果逆序,就交换

{

temp=Arr[j];

Arr[j]=Arr[j+1];

Arr[j+1]=temp;

}

}

}

for(i=0;i

cout<

return 0;

}

算法分析:输入的规模完全由N决定,基本操作是比较:Arr[j]>Arr[j+1],时间复杂度C(n)=Θ(n2).

但是键的交换次数是取决于特定的输入,最差的情况是与我们要求的排序相反的,这时候键的交换次数=键的比较次数=Θ(n2).

但是在有的输入情况下,如果在对列表比较一遍之后,没有交换元素的位置,那么这个列表已经有序了,我们就可以停止该算法了。具体改进版本如下:

#include

using namespace std;

int main()

{

int i,j,temp,N;

bool change=false;

cin>>N;

int *Arr=new int[N];

for(i=0;i>Arr[i];

for(i=0;i

{

change=false;

for(j=0;jArr[j+1])//如果逆序,就交换

{

temp=Arr[j];

Arr[j]=Arr[j+1];

Arr[j+1]=temp;

change=true;

}

}

if(!change)//没有发生交换,则不用继续比较了。

{

break;

}

}

for(i=0;i

cout<

return 0;

}

但是在最差情况下,时间复杂度还是Θ(n2).

linux冒泡算法程序,用蛮力法解决冒泡排序 - linux-tao的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐

  1. linux 劫持广告技术,屏蔽运营商广告劫持 - gcudwork的个人空间 - OSCHINA - 中文开源技术交流社区...

    在今天早上我查找知乎时再次遇到了恶心的运营商广告劫持,右下角硕大的广告直接让知乎挂掉了,我刷了五次知乎才好,之前休息的时候逛知乎也是多次加载错误,估计也是这劫持的锅,相信各位也遇到过不少的运营商劫持插 ...

  2. c语言输出法雷序列,法雷(法里)序列 - osc_h0wb1wlt的个人空间 - OSCHINA - 中文开源技术交流社区...

    定义: 对任意给定的一个自然数n,将分母小于等于n的不可约的真分数按升序排列,并且在第一个分数之前加上0/1,在最后一个分数之后加上1/1,这个序列称为n级法雷数列,即法雷数列是0和1之间最简分数升序 ...

  3. linux内核等价多路径路由,高级路由 - 我是*李世民*的个人空间 - OSCHINA - 中文开源技术交流社区...

    策略路由背后的概念 Linux内核在默认情况下使用两张路由表:一张表用于本地路由,另一张可以由管理员来配置.如果内核编译支持策略路由,那么可以有多大255张不同的.相互独立的路由表.策略路由背后的主要 ...

  4. linux使用wdm设备驱动模型,驱动开发(WDM) - thomas_more的个人空间 - OSCHINA - 中文开源技术交流社区...

    windows 设备对象名称(内核对象必须命名才能被用户层访问产生句柄) \Driver\ 内核模式下访问 \.\ 用户模式下访问 winObj(symbollink设备名称的别名,各个节点查看)和d ...

  5. linux lcd驱动调试 echo dev/fb0,LCD驱动程序 - osc_msmij2gf的个人空间 - OSCHINA - 中文开源技术交流社区...

    LCD驱动程序 假设 app: open("/dev/fb0", ...) 主设备号: 29, 次设备号: 0 kernel: fb_open int fbidx = iminor ...

  6. a33 linux内核启动网卡,a33核心板启动问题 - nevermore1981的个人空间 - OSCHINA - 中文开源技术交流社区...

    测试发现a33核心板有时无法正常启动,通过串口信息显示判断是uboot 对mmc初始化有时会出现问题: [      0.770][mmc]: ************Try MMC card 2** ...

  7. linux卸载apk命令,apk的安装和卸载 - Jenly的个人空间 - OSCHINA - 中文开源技术交流社区...

    之前写了一篇关于静默安装apk的.那个其实是在获取root权限的条件下来通过执行命令完成的.其功能本身已经很强大了.只是前提条件是需要root权限.然后什么静默安装卸载就都是浮云了.对于以下刚刚学an ...

  8. linux c 数组拷贝,C++对数组进行复制 - osc_8iux0cyz的个人空间 - OSCHINA - 中文开源技术交流社区...

    C++ 风格的复制操作 使用STL中的copy算法 int a[] = {1,2,3,4,5}; int b[5]; std::copy(std::begin(a),std::end(a),std:: ...

  9. linux链接 .o,Linux 链接概念 - osc_8ieji7o1的个人空间 - OSCHINA - 中文开源技术交流社区...

    1.Linux 链接概念 Linux 链接分两种, 一种被称作硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln 命令产生硬链接. 硬连接 硬链接指通过 ...

最新文章

  1. java获取用户地理位置_java web 通过ip获取当前地理位置
  2. Delphi全局热键的注册
  3. 通过JAX-WS Provider在Web服务中利用MOXy
  4. python中的颜色_Python中常见颜色记录
  5. 雷霄骅--H264视频编解码分析--目录转载
  6. 散点图 横纵坐标_厉害了我的Python!散点图还能这么画
  7. Linux下让Eclipse支持Python
  8. 巴蒂尔7个三分火箭破网 麦蒂战表兄取缺姚后首胜
  9. TransE算法原理与案例
  10. IT运维服务整体方案(资料下载)
  11. 图文并茂搭建STM32开发环境
  12. P3554 LUK-Triumphal arch 解题报告
  13. html 项目实战摄影开课吧,最新《开课吧Web全栈架构师正式课》(Vue.JS及实战项目)...
  14. 用一个电位器调节音调的简单电路
  15. 【MYSQL】ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
  16. python 描述性分析的包_pasty描述性统计包
  17. 做饭真的很简单!做饭扫盲贴!
  18. python启动netron
  19. python所有内置函数的简单使用
  20. 简述下列​概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构

热门文章

  1. 如何用比特币现金地址和数字签名证明所有权
  2. Bitcoin ABC近半数节点已经完成了版本更迭
  3. Strange Towers of Hanoi (POJ1958)
  4. KOA2路由koa-router实现类似express router的文件结构设计---KOA入门学习
  5. Androidn Notification的使用,解决找不到setLatestEventInfo方法
  6. PostgreSQL 打开文件句柄优化 - 百万以上实体对象初始化优化
  7. 谈谈UIView的几个layout方法-layoutSubviews、layoutIfNeeded、
  8. 前端知识点(持续更新)
  9. PostgreSQL从继承到分区(三)
  10. CSLA.NET权限规则的困惑