标签:
冒泡排序是所有排序算法中最基本、最简单的一种。思想就是交换排序,通过比较和交换相邻的数据来达到排序的目的。
具体流程如下:
1、对要排序的数组中的数据,依次比较相邻的两个数据的大小。
2、如果前面的数据大于后面的数据,就把这两个数据进行交换。这样一轮比较和交换过后,就把最小的数据放在数组的最前面;
3、按照上述比较和交换的方法,把剩下的数据再进行相同操作,最后,便可按照从小到大的顺序对数组完成排序。
假如有初始数据:25 11 45 26 12 78。
1、第一轮排序,从数组的头部开始进行比较。首先是 25 和 11 比较,25 大,将数据 11 向前移一位。同理,比较 25 和 45, 后一个即 45 大,位置不动。再比较45 和 26,前一个数大,所以 45 后移一位。第一轮排序后,顺序为:[11, 25, 26, 12, 45, 78]。
2、第二轮排序,从数组的头部开始进行比较。首先是 11 和 25 比较,由于前面的数小,所以位置不动。比较25 和 26 ,由于前面的数小,所以位置不动。第二轮排序后,顺序为:[11, 25, 12, 26, 45, 78]。
3、第三轮排序,从数组的头部开始进行比较。首先是 11 和 25 比较,由于前面的数小,所以位置不动。比较 25 和 12,由于前面的数大,所以位置互换。第三轮排序后,顺序为:[11, 12, 25, 26, 45, 78]。
......
4、最后一轮排序后,顺序为:[11, 12, 25, 26, 45, 78]
java 代码实现为:
1 public int[] sort(int[] arr) {
2 int tmp;
3 for(int i = 1; i < arr.length; i++) {
4 // 判断相邻两个数据的大小,并把较大的数往后冒泡
5 for(int j = 0; j < arr.length - 1; j++) {
6 if(arr[j] > arr[j+1]) {
7 tmp = arr[j];
8 arr[j] = arr[j+1];
9 arr[j+1] = tmp;
10 }
11 }
12 System.out.println(i + ":" + Arrays.toString(arr));
13 }
14 return arr;
15 }
常用算法Java实现之冒泡排序
标签:
原文地址:http://www.cnblogs.com/LeslieXia/p/5803633.html