linux冒泡算法程序,用蛮力法解决冒泡排序 - linux-tao的个人空间 - OSCHINA - 中文开源技术交流社区...
冒泡排序是蛮力法的另一个经典体现。
算法思想:比较列表中相邻的元素,如果是逆序的话,就交换他们的位置。重复多次之后,最大的元素就排到了最后一个位置。第二遍操作将第二个元素排到了倒数第二个位置上,这样一直依次比较下去,直到 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 - 中文开源技术交流社区...相关推荐
- linux 劫持广告技术,屏蔽运营商广告劫持 - gcudwork的个人空间 - OSCHINA - 中文开源技术交流社区...
在今天早上我查找知乎时再次遇到了恶心的运营商广告劫持,右下角硕大的广告直接让知乎挂掉了,我刷了五次知乎才好,之前休息的时候逛知乎也是多次加载错误,估计也是这劫持的锅,相信各位也遇到过不少的运营商劫持插 ...
- c语言输出法雷序列,法雷(法里)序列 - osc_h0wb1wlt的个人空间 - OSCHINA - 中文开源技术交流社区...
定义: 对任意给定的一个自然数n,将分母小于等于n的不可约的真分数按升序排列,并且在第一个分数之前加上0/1,在最后一个分数之后加上1/1,这个序列称为n级法雷数列,即法雷数列是0和1之间最简分数升序 ...
- linux内核等价多路径路由,高级路由 - 我是*李世民*的个人空间 - OSCHINA - 中文开源技术交流社区...
策略路由背后的概念 Linux内核在默认情况下使用两张路由表:一张表用于本地路由,另一张可以由管理员来配置.如果内核编译支持策略路由,那么可以有多大255张不同的.相互独立的路由表.策略路由背后的主要 ...
- linux使用wdm设备驱动模型,驱动开发(WDM) - thomas_more的个人空间 - OSCHINA - 中文开源技术交流社区...
windows 设备对象名称(内核对象必须命名才能被用户层访问产生句柄) \Driver\ 内核模式下访问 \.\ 用户模式下访问 winObj(symbollink设备名称的别名,各个节点查看)和d ...
- linux lcd驱动调试 echo dev/fb0,LCD驱动程序 - osc_msmij2gf的个人空间 - OSCHINA - 中文开源技术交流社区...
LCD驱动程序 假设 app: open("/dev/fb0", ...) 主设备号: 29, 次设备号: 0 kernel: fb_open int fbidx = iminor ...
- a33 linux内核启动网卡,a33核心板启动问题 - nevermore1981的个人空间 - OSCHINA - 中文开源技术交流社区...
测试发现a33核心板有时无法正常启动,通过串口信息显示判断是uboot 对mmc初始化有时会出现问题: [ 0.770][mmc]: ************Try MMC card 2** ...
- linux卸载apk命令,apk的安装和卸载 - Jenly的个人空间 - OSCHINA - 中文开源技术交流社区...
之前写了一篇关于静默安装apk的.那个其实是在获取root权限的条件下来通过执行命令完成的.其功能本身已经很强大了.只是前提条件是需要root权限.然后什么静默安装卸载就都是浮云了.对于以下刚刚学an ...
- 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:: ...
- linux链接 .o,Linux 链接概念 - osc_8ieji7o1的个人空间 - OSCHINA - 中文开源技术交流社区...
1.Linux 链接概念 Linux 链接分两种, 一种被称作硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln 命令产生硬链接. 硬连接 硬链接指通过 ...
最新文章
- java获取用户地理位置_java web 通过ip获取当前地理位置
- Delphi全局热键的注册
- 通过JAX-WS Provider在Web服务中利用MOXy
- python中的颜色_Python中常见颜色记录
- 雷霄骅--H264视频编解码分析--目录转载
- 散点图 横纵坐标_厉害了我的Python!散点图还能这么画
- Linux下让Eclipse支持Python
- 巴蒂尔7个三分火箭破网 麦蒂战表兄取缺姚后首胜
- TransE算法原理与案例
- IT运维服务整体方案(资料下载)
- 图文并茂搭建STM32开发环境
- P3554 LUK-Triumphal arch 解题报告
- html 项目实战摄影开课吧,最新《开课吧Web全栈架构师正式课》(Vue.JS及实战项目)...
- 用一个电位器调节音调的简单电路
- 【MYSQL】ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
- python 描述性分析的包_pasty描述性统计包
- 做饭真的很简单!做饭扫盲贴!
- python启动netron
- python所有内置函数的简单使用
- 简述下列​概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构
热门文章
- 如何用比特币现金地址和数字签名证明所有权
- Bitcoin ABC近半数节点已经完成了版本更迭
- Strange Towers of Hanoi (POJ1958)
- KOA2路由koa-router实现类似express router的文件结构设计---KOA入门学习
- Androidn Notification的使用,解决找不到setLatestEventInfo方法
- PostgreSQL 打开文件句柄优化 - 百万以上实体对象初始化优化
- 谈谈UIView的几个layout方法-layoutSubviews、layoutIfNeeded、
- 前端知识点(持续更新)
- PostgreSQL从继承到分区(三)
- CSLA.NET权限规则的困惑