排序

简介: 排序

冒泡排序:

冒泡排序动态演示:冒泡排序演示(打开后点击图上面的Bubble Sort即可观看)

如动态图中看到的,冒泡排序(Bubble Sort)就是让大的元素往下(后)沉。


从第一个元素开始,用第一个和第二个元素比较。如果它比第二个大,就交换位置(让大的往下沉)。接着用第二个和第三个比较,重复上述过程。一直到倒数第二个和倒数第一个比较完成时,第一轮排序结束,最下面的就是最大的元素。

然后开始第二轮,由于最下面已经是最大的了,这次只要排到倒数第二个就可以了。


假设数组长度为len,即数组有len个元素。

因此一共要 len-1 轮排序。(len-1个元素已经沉下去了,剩下的一个自然就是最小的,不必再排)

而每一轮需要比较的次数是len -i - 1,(第i轮时,已经有i个元素沉下去了(i是从0开始,所以i=1时已经完成1轮了),剩下的元素是len-i,比较的次数就是len- i - 1。)

void BubbleSort(int array[], int len)
{
  for (int i = 0; i < len -1; ++i)  //最外层的大循环,一共要进行len-1轮
  {
    for (int j = 0; j < len - i-1; ++j)//每一轮的小循环,每轮比较len-i-1次
      if (array[j] > array[j + 1])
        swap(array[j], array[j + 1]); //自定义swap函数,用于交换两个数
  }
}
相关文章
|
运维 Linux 网络虚拟化
【运维】Debian linux实现单臂路由
Debian linux实现单臂路由
1196 0
|
7月前
联通骨干网如何从内循环走向全球化?
中国联通骨干网的发展历程堪称中国互联网基础设施建设的缩影。从承载2G/3G业务的B网起步,经由169网的国内“内循环”先锋阶段,到A网(CUII)的企业级服务高速公路,再到国际化的AS10099骨干网,形成当前“China169+CUII”的双网格局。这一布局实现了普通用户与企业需求的分离,确保服务质量的同时提升资源调配效率,为数字中国建设提供了坚实支撑。
203 0
联通骨干网如何从内循环走向全球化?
MATLAB-Simulink仿真实现OFDM通信系统
【8月更文挑战第7天】本文介绍了在MATLAB-Simulink环境中实现OFDM通信系统仿真的方法,包括发送机、信道和接收机的设计,支持BPSK、QAM等多种调制方式,并考虑了Rician、AWGN、Rayleigh等信道模型。
851 12
MATLAB-Simulink仿真实现OFDM通信系统
|
数据采集 前端开发 Java
Python简单爬虫案例
用pyhton从网页中爬取数据,是比较常用的爬虫方式。网页一般由html编写,里面包含大量的标签,我们所需的内容都包含在这些标签之中,除了对python的基础语法有了解之外,还要对html的结构以及标签选择有简单的认知,下面就用爬取fl小说网的案例带大家进入爬虫的世界。
朋友问我Java中“::”是什么意思?我汗流浃背了......
朋友问我Java中“::”是什么意思?我汗流浃背了......
391 0
Flutter-自定义折叠流布局实现
Flutter-自定义折叠流布局实现
300 0
|
存储 人工智能 弹性计算
倚天使用|倚天性能优化—YCL AI计算库在resnet50上的优化
本文介绍了x86软件迁移到Arm过程中可能遇到的弱内存序问题的解决方案,解析了弱内存序问题的根因,介绍了Hawkeyes的架构和实现原理。欢迎有需求的团队发送邮件咨询
|
运维 监控 Unix
htop命令详解
`htop`是Unix-like系统的一款增强版进程查看器,基于ncurses,提供实时系统监控、交互式导航、彩色界面和多核支持。用户可通过键盘或鼠标操作,如排序、搜索、过滤进程,直接发送信号(如`F9`杀进程)等。常用快捷键包括`P`(按CPU排序)、`F3`(搜索进程)、`F2`(设置)和`F10`(退出)。它是`top`的现代替代品,提升资源管理和故障排查效率。
814 2
【Python 基础】如何将一个字符串转化为全大写和全小写?
【5月更文挑战第8天】【Python 基础】如何将一个字符串转化为全大写和全小写?
|
数据可视化 算法 Linux
深入剖析Python最强大图片处理模块——Pillow
深入剖析Python最强大图片处理模块——Pillow
402 0