Step01:冒泡排序
原理:比较两个相邻的元素,将值大的元素交换至一端。
思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。
即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。
然后比较第2个数和第3个数,将小数放前,大数放后,
如此继续,直至比较最后两个数,将小数放前,大数放后。
重复第一趟步骤,直至全部排序完成。
public class Sort01_BubbleSort { public static void main(String agrs[]) { int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}; System.out.println("\n"+arr.length); System.out.println("before sort:"); for (int num : arr) { System.out.print(num + " "); } for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - 1-i; j++) { if (arr[j] > arr[j + 1]) {//if 后一位的数小,将被往前移动 int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } System.out.println("\n"+"---第"+(i+1)+"轮第"+(j+1)+"次-----"); for (int num : arr) { System.out.print(num + " "); } } } System.out.println("\n"+"---"); System.out.println("after sort:"); for (int num : arr) { System.out.print(num + " "); } } }
查看具体执行的过程:
"C:\Program Files\Java\jdk1.8.0_161\bin\java" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2018.1\lib\idea_rt.jar=55246:C:\Program Files\JetBrains\IntelliJ IDEA 2018.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_161\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\rt.jar;D:\00M_IDEA_Project\mavenDemo_idea01\target\classes" Sort01_BubbleSort 10 before sort: 1 2 3 4 5 6 7 8 9 0 ---第1轮第1次----- 1 2 3 4 5 6 7 8 9 0 ---第1轮第2次----- 1 2 3 4 5 6 7 8 9 0 ---第1轮第3次----- 1 2 3 4 5 6 7 8 9 0 ---第1轮第4次----- 1 2 3 4 5 6 7 8 9 0 ---第1轮第5次----- 1 2 3 4 5 6 7 8 9 0 ---第1轮第6次----- 1 2 3 4 5 6 7 8 9 0 ---第1轮第7次----- 1 2 3 4 5 6 7 8 9 0 ---第1轮第8次----- 1 2 3 4 5 6 7 8 9 0 ---第1轮第9次----- 1 2 3 4 5 6 7 8 0 9 ---第2轮第1次----- 1 2 3 4 5 6 7 8 0 9 ---第2轮第2次----- 1 2 3 4 5 6 7 8 0 9 ---第2轮第3次----- 1 2 3 4 5 6 7 8 0 9 ---第2轮第4次----- 1 2 3 4 5 6 7 8 0 9 ---第2轮第5次----- 1 2 3 4 5 6 7 8 0 9 ---第2轮第6次----- 1 2 3 4 5 6 7 8 0 9 ---第2轮第7次----- 1 2 3 4 5 6 7 8 0 9 ---第2轮第8次----- 1 2 3 4 5 6 7 0 8 9 ---第3轮第1次----- 1 2 3 4 5 6 7 0 8 9 ---第3轮第2次----- 1 2 3 4 5 6 7 0 8 9 ---第3轮第3次----- 1 2 3 4 5 6 7 0 8 9 ---第3轮第4次----- 1 2 3 4 5 6 7 0 8 9 ---第3轮第5次----- 1 2 3 4 5 6 7 0 8 9 ---第3轮第6次----- 1 2 3 4 5 6 7 0 8 9 ---第3轮第7次----- 1 2 3 4 5 6 0 7 8 9 ---第4轮第1次----- 1 2 3 4 5 6 0 7 8 9 ---第4轮第2次----- 1 2 3 4 5 6 0 7 8 9 ---第4轮第3次----- 1 2 3 4 5 6 0 7 8 9 ---第4轮第4次----- 1 2 3 4 5 6 0 7 8 9 ---第4轮第5次----- 1 2 3 4 5 6 0 7 8 9 ---第4轮第6次----- 1 2 3 4 5 0 6 7 8 9 ---第5轮第1次----- 1 2 3 4 5 0 6 7 8 9 ---第5轮第2次----- 1 2 3 4 5 0 6 7 8 9 ---第5轮第3次----- 1 2 3 4 5 0 6 7 8 9 ---第5轮第4次----- 1 2 3 4 5 0 6 7 8 9 ---第5轮第5次----- 1 2 3 4 0 5 6 7 8 9 ---第6轮第1次----- 1 2 3 4 0 5 6 7 8 9 ---第6轮第2次----- 1 2 3 4 0 5 6 7 8 9 ---第6轮第3次----- 1 2 3 4 0 5 6 7 8 9 ---第6轮第4次----- 1 2 3 0 4 5 6 7 8 9 ---第7轮第1次----- 1 2 3 0 4 5 6 7 8 9 ---第7轮第2次----- 1 2 3 0 4 5 6 7 8 9 ---第7轮第3次----- 1 2 0 3 4 5 6 7 8 9 ---第8轮第1次----- 1 2 0 3 4 5 6 7 8 9 ---第8轮第2次----- 1 0 2 3 4 5 6 7 8 9 ---第9轮第1次----- 0 1 2 3 4 5 6 7 8 9 --- after sort: 0 1 2 3 4 5 6 7 8 9 Process finished with exit code 0