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

界面效果图如下:

 

posted @ 2018-05-05 17:07  Chris_Lee  阅读(157)  评论(0编辑  收藏  举报