经典排序算法 - 冒泡排序Bubble sort
来源:互联网 发布:mac什么游戏 编辑:程序博客网 时间:2024/06/04 17:57
经典排序算法 - 冒泡排序Bubble sort
原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,
这样一趟过去后,最大或最小的数字被交换到了最后一位,
然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似看例子
例子为从小到大排序,
原始待排序数组| 6 | 2 | 4 | 1 | 5 | 9 |
第一趟排序(外循环)
第一次两两比较6 > 2交换(内循环)
交换前状态| 6 | 2 | 4 | 1 | 5 | 9 |
交换后状态| 2 | 6 | 4 | 1 | 5 | 9 |
第二次两两比较,6 > 4交换
交换前状态| 2 | 6 | 4 | 1 | 5 | 9 |
交换后状态| 2 | 4 | 6 | 1 | 5 | 9 |
第三次两两比较,6 > 1交换
交换前状态| 2 | 4 | 6 | 1 | 5 | 9 |
交换后状态| 2 | 4 | 1 | 6 | 5 | 9 |
第四次两两比较,6 > 5交换
交换前状态| 2 | 4 | 1 | 6 | 5 | 9 |
交换后状态| 2 | 4 | 1 | 5 | 6 | 9 |
第五次两两比较,6 < 9不交换
交换前状态| 2 | 4 | 1 | 5 | 6 | 9 |
交换后状态| 2 | 4 | 1 | 5 | 6 | 9 |
第二趟排序(外循环)
第一次两两比较2 < 4不交换
交换前状态| 2 | 4 | 1 | 5 | 6 | 9 |
交换后状态| 2 | 4 | 1 | 5 | 6 | 9 |
第二次两两比较,4 > 1交换
交换前状态| 2 | 4 | 1 | 5 | 6 | 9 |
交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |
第三次两两比较,4 < 5不交换
交换前状态| 2 | 1 | 4 | 5 | 6 | 9 |
交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |
第四次两两比较,5 < 6不交换
交换前状态| 2 | 1 | 4 | 5 | 6 | 9 |
交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |
第三趟排序(外循环)
第一次两两比较2 > 1交换
交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |
交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |
第二次两两比较,2 < 4不交换
交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |
交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |
第三次两两比较,4 < 5不交换
交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |
交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |
第四趟排序(外循环)无交换
第五趟排序(外循环)无交换
排序完毕,输出最终结果1 2 4 5 6 9
代码仅供参考
static void bubble_sort(int[] unsorted) { for (int i = 0; i < unsorted.Length; i++) { for (int j = i; j < unsorted.Length; j++) { if (unsorted[i] > unsorted[j]) { int temp = unsorted[i]; unsorted[i] = unsorted[j]; unsorted[j] = temp; } } } } static void Main(string[] args) { int[] x = { 6, 2, 4, 1, 5, 9 }; bubble_sort(x); foreach (var item in x) { Console.WriteLine(item); } Console.ReadLine(); }
冒泡排序动画演示
- 经典排序算法 - 冒泡排序Bubble sort
- 经典排序算法 - 冒泡排序Bubble sort
- 经典排序算法 - 冒泡排序Bubble sort
- 经典排序算法 - 冒泡排序Bubble sort
- 经典排序算法 - 冒泡排序Bubble sort
- 经典排序算法 - 冒泡排序Bubble sort
- 经典排序算法 - 冒泡排序Bubble sort
- 经典排序算法 - 冒泡排序Bubble sort
- 经典排序算法 - 冒泡排序Bubble sort
- 经典排序算法 - 冒泡排序Bubble sort
- 经典排序算法 - 冒泡排序Bubble sort
- 经典排序算法 - 冒泡排序Bubble sort
- 经典排序算法 - 冒泡排序Bubble sort
- 经典排序算法---冒泡排序(bubble sort)
- 经典排序算法 - 冒泡排序Bubble sort
- 经典排序算法 - 冒泡排序Bubble sort
- 经典排序算法——冒泡排序Bubble sort
- 经典排序算法(1) - 冒泡排序Bubble Sort
- 条款6 不想编译器自动生成函数,就明确拒绝
- 欧拉函数
- C++中堆和栈内存分配
- homeBar
- GCD介绍(四): 完结
- 经典排序算法 - 冒泡排序Bubble sort
- win2003 thinkphp IIS6 php5.2 验证码乱码
- epoll 使用笔记
- 函数学习
- git回滚
- zookeeper的安装
- java保留两位小数的四种方法
- Android UI 优化 使用<include/>和 <merge />标签
- Openfire 性能优化