Java冒泡排序
说明:欢迎批评指正,留言点赞!如若转载,请注明原文地址:http://www.cnblogs.com/chris0710/p/8995234.html
这篇文章将通过简单例子说明冒泡排序原理,闲话少说,直接上代码。
1 /** 2 * 冒泡排序 3 * 4, 6, 2, 3, 5 4 * 思路:先写内循环(遍历次数: times = arr.length - 1),排好第一个数字,再添加外循环,排好所有数字 5 * 遍历第一次结果: 6 * _____________ 7 * 4, 6, 2, 3, 5 8 * 4, 2, 6, 3, 5 9 * 4, 2, 3, 6, 5 10 * 4, 2, 3, 5, 6 11 */ 12 public class BubbleSortDemo { 13 public static void main(String[] args) { 14 int[] arr = {4, 6, 2, 3, 5}; 15 bubbleSort(arr); 16 for (int i = 0; i < arr.length; i++) { 17 System.out.println(arr[i]); // 2, 3, 4, 5, 6 18 } 19 } 20 /** 21 * 冒泡排序 22 */ 23 public static void bubbleSort(int[] arr) { 24 int len = arr.length; 25 int temp = 0; 26 /* 27 外层循环:控制排好第几个数 28 内层循环:控制相邻两个数比较次数 29 二者关系(i < len - 1与j < len - 1 - i):随着外层循环多排好1个数,内层循环就少循环比较一次 30 */ 31 for (int i = 0; i < len - 1; i++) { 32 for (int j = 0; j < len - 1 - i; j++) { 33 if (arr[j] > arr[j+1]) { 34 temp = arr[j]; 35 arr[j] = arr[j+1]; 36 arr[j+1] = temp; 37 } 38 } 39 } 40 } 41 42 }
最后:推荐一个超级实用的可视化工具,目的是可以交互式的看到程序每一步的状态及参数是什么,简直perfect!
可视化工具地址:http://www.pythontutor.com/java.html#mode=edit
界面效果图如下: