交换排序-冒泡排序
来源:互联网 发布:php网站数据库在哪里 编辑:程序博客网 时间:2024/05/16 09:09
1、概念
冒泡排序:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。
2、算法
public static void bubbleSort(int[] arr) { int length = arr.length; //优化 boolean flag = true;//设置标记变量 for (int i = 0; i < length && flag; i++) { flag = false;//只要flag在下一次外循环条件检测的时候值为false,就说明已经排好序,不用继续循环 for (int j = length - 1; j > i; j--) { if (arr[j] < arr[j - 1]) { int temp = arr[j - 1]; arr[j - 1] = arr[j]; arr[j] = temp; flag = true;//如果有交换,下次将继续排序 } } //输出结果 System.out.print((i+1) + "times: "); for (int k = 0; k < length && flag; k++) { System.out.print(arr[k] + " "); } System.out.println(); } }
运行结果:
source: 8 3 6 5 9 4 10 7 1 2 1times: 1 8 3 6 5 9 4 10 7 2 2times: 1 2 8 3 6 5 9 4 10 7 3times: 1 2 3 8 4 6 5 9 7 10 4times: 1 2 3 4 8 5 6 7 9 10 5times: 1 2 3 4 5 8 6 7 9 10 6times: 1 2 3 4 5 6 8 7 9 10 7times: 1 2 3 4 5 6 7 8 9 10
设置的标志位flag用来判断是否已经全部排序完成,当排序完成后将不再进行排序比较。
冒泡排序效率比较底下,在数据规模较小时,可以采用。数据规模比较大时,最好用其它排序方法。
阅读全文
0 0
- 交换排序:冒泡排序
- 交换排序-冒泡排序
- 交换排序-冒泡排序
- 交换排序-冒泡排序
- 冒泡排序-交换排序
- 【交换排序】冒泡排序
- 交换排序-冒泡排序
- 交换排序-冒泡排序
- 交换排序------冒泡排序
- 交换排序-冒泡排序
- **交换排序----冒泡排序**
- 交换排序-冒泡排序
- 交换排序--冒泡排序
- 交换类------冒泡排序
- 冒泡排序-指针交换
- 交换排序--冒泡
- 交换排序之冒泡排序
- 交换排序:冒泡排序 学习
- Subsequence Count
- (二)SSM中mybatis一对一查询
- 服务器开发之简单的TCP回射服务器(0):程序说明
- Palindrome Function
- instanceof的使用: 对象与构造函数在原型链上是否有关系
- 交换排序-冒泡排序
- The Karting
- hdu2955(01背包)
- The Designer
- 笔记
- [2017-08-19 17:02:13
- HTTP状态码详解
- POJ 3233Matrix Power Series
- Floyd算法学习(最短路径)