排序(1)冒泡排序
来源:互联网 发布:tensorflow 版本 编辑:程序博客网 时间:2024/05/18 03:06
排序(1)冒泡排序
摘要:
在C语言的学习过程中, 排序可以对循环及选择进行一个很好的训练,在实际编程中也有着很重要的作用,本文针对于众多排序算法中的冒泡排序(之后还有快速排序、插入排序及选择排序)进行了原理上的简单说明,并进行了代码的实现。
文章内容:
- 冒泡排序的定义
- 冒泡排序的原理
- 实例分析
- 代码实现
冒泡排序(bubble sort)
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。这个过程类似于气泡从水底向上慢慢变大,越大的元素会经由交换慢慢“浮”到数列的顶端,所以叫做冒泡排序。
其原理类似下图
下面是一个例子(从小到大排序)。
原始待排序数组
第一趟排序(外循环)
第一次两两比较, 6 > 2交换(内循环)
交换前状态
交换后状态
第二次两两比较,6 > 4交换
交换前状态
交换后状态
第三次两两比较,6 > 1交换
交换前状态
交换后状态
第四次两两比较,6 > 5交换
交换前状态
交换后状态
第五次两两比较,6 < 9不交换
第二趟排序(外循环)
第一次两两比较2 < 4不交换
第二次两两比较,4 > 1交换
交换前状态
交换后状态
第三次两两比较,4 < 5不交换
第四次两两比较,5 < 6不交换
第三趟排序(外循环)
第一次两两比较2 > 1交换
交换后状态
交换后状态
第二次两两比较,2 < 4不交换
第三次两两比较,4 < 5不交换
第四趟排序(外循环)无交换
第五趟排序(外循环)无交换
所以最后的结果为:1 2 4 5 6 9
下列为代码(仅供参考):
void main() { int a[6] = {6, 2, 4, 1, 5, 9}; for(int i = 0; i < 5; i++){ for(int j = 0; j < 5 - i; j++){ if(a[j] < a[j + 1]){ int temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp } } }}
0 0
- 排序(1)冒泡排序
- 排序(1)-冒泡排序
- 排序(1)冒泡排序
- 冒泡排序(1)
- 排序1 冒泡排序
- 排序(1) -- 冒泡排序
- 排序1-冒泡排序
- 排序1-冒泡排序
- 排序1:冒泡排序
- 排序-1-冒泡排序
- 经典排序算法1(冒泡排序)
- C++排序之冒泡排序(1)
- 交换排序(1)---冒泡排序
- 冒泡排序(1)BubbleSort
- 1、冒泡排序(0111)
- [排序算法1] - 冒泡排序
- 排序算法(1)-冒泡排序
- 排序算法1-冒泡排序
- Panopticlick揭示你不能删除cookie
- Texturepacket命令行工具
- 6to4隧道
- 解析nginx负载均衡
- mysql主主模式配置
- 排序(1)冒泡排序
- 黑马程序员—Java基础:初识Java
- session的产生方式
- POJ 3204 Ikki's Story I - Road Reconstruction(最小割+残余网络)
- Android proguard 详解(三)
- ZOJ 3883 Scan Code
- 同样是工作,为什么成功的是他们?
- 动态规划之走格子不经过点P
- SpringMVC+MyBatis - 12 spring mvc4返回的json日期为Long的解决方案