冒泡排序:每一次排序,最大或最小的数像气泡一样升到最上面。

也就是每次遍历都是比较相邻的俩个数,如果第i个数大于第i+1个数,则将俩个数交互位置,再继续比较相邻的俩个数。

俩个循环,里面那个循环是比较相邻俩个数用的。里面那个循环走完,也就是说最大的数已经排到最后面了。

外面那个循环+1,则继续选择第二大的数。

图解:(图是盗用的)①代表第一次排序,最小的数52通过每次前后的比较,排到了最前面。②代表第二次比较,59比68小,交行位置,59没有57小,则不交换位置,则第二次排序完,第二小的数为57。

代码如下:

 1 import java.util.Arrays;
 2 
 3 public class BubbleSort {
 4 
 5     public void sort(int[] arrs) {
 6         System.out.println(Arrays.toString(arrs));
 7         for (int i = 0; i < arrs.length; i++) {
 8             for (int j = 0; j < arrs.length - i - 1; j++) {
 9                 if (arrs[j] > arrs[j+1]) {
10                     int temp = arrs[j];
11                     arrs[j] = arrs[j+1];
12                     arrs[j+1] = temp;
13                 }
14                 System.err.println(Arrays.toString(arrs));
15             }
16         }
17     }
18     
19     public static void main(String[] args) {
20         int[] arrs = {4,3,2,1,5,6,9,20,14};
21         BubbleSort test = new BubbleSort();
22         test.sort(arrs);
23         System.out.println(Arrays.toString(arrs));
24     }
25 }

 不知道大家看懂没,第一次写博客,表达能力略差。欢迎留言评论指点一二。O(∩_∩)O

posted on 2015-01-15 21:58  lucifer_c  阅读(153)  评论(0编辑  收藏  举报