無人不知無人不曉的冒泡排序,據說是模仿泡泡從水中浮起跑到水面的過程。
在要排序的一組數中,對當前還未排好序的范圍內的全部數,自上而下對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。即: 每當兩相鄰的數比較后發現它們的排序與排序要求相反時,就將它們互換。
來看一下代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
package cn.songxinqiang.study.algorithm.sort; import java.util.Arrays; /** * 冒泡排序 * * <p> * 眾里尋她千百度, 驀然回首, 那人卻在燈火闌珊處. * </p> * * @author 阿信sxq-2015年7月16日 * */ public class BubbleSort { /** * 原理:在要排序的一組數中,對當前還未排好序的范圍內的全部數,自上而下對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。即: * 每當兩相鄰的數比較后發現它們的排序與排序要求相反時,就將它們互換。 * * @author 阿信sxq-2015年7月16日 * * @param args */ public static void main(String[] args) { int a[] = { 49 , 38 , 65 , 97 , 76 , 13 , 27 , 49 , 78 , 34 , 12 , 64 , 5 , 4 , 62 , 99 , 98 , 54 , 56 , 17 , 18 , 23 , 34 , 15 , 35 , 25 , 53 , 51 }; int temp = 0 ; for ( int i = 0 ; i < a.length - 1 ; i++) { for ( int j = 0 ; j < a.length - 1 - i; j++) { if (a[j] > a[j + 1 ]) { temp = a[j]; a[j] = a[j + 1 ]; a[j + 1 ] = temp; } } } System.out.println(Arrays.toString(a)); } } |
輸出為:
1
|
[ 4 , 5 , 12 , 13 , 15 , 17 , 18 , 23 , 25 , 27 , 34 , 34 , 35 , 38 , 49 , 49 , 51 , 53 , 54 , 56 , 62 , 64 , 65 , 76 , 78 , 97 , 98 , 99 ] |
以上就是關于冒泡排序的實例詳解,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
原文鏈接:https://my.oschina.net/songxinqiang/blog/522549