冒泡排序顾名思义,就像是冒泡一样,每次都要把最大(相比较而言)的泡泡(值)选出来,用第n个元素个第n+1个元素相比较,如果n索引对应的值大于n+1索引对应的值,将两个索引对应的值对调,第一次循环结束后则会将最大值放在最后一个索引处,第二次循环时就开始在剩下的元素中选出最大值(第一次比较出来的最大值不用参与接下来的的比较)。
1 package com.berry.algorithm.sort;
2
3 /**
4 * 冒泡排序
5 */
6 public class BubbleSort implements Sort {
7
8 /**
9 *
10 * @param array
11 * 冒泡排序顾名思义,就像是冒泡一样,每次都要把最大(相比较而言)的泡泡(值)选出来
12 * 用第n个元素个第n+1个元素相比较,如果n索引对应的值大于n+1索引对应的值,将两个
13 * 索引对应的值对调,第一次循环结束后则会将最大值放在最后一个索引处,第二次循环时
14 * 就开始在剩下的元素中选出最大值(第一次比较出来的最大值不用参与接下来的的比较)
15 */
16 @Override
17 public void sort(int[] array) {
18 int temp;
19 //外循环,每循环一次,就将前一次内循环选出来的最大值与接下来的内循环比较中排除开来
20 for(int i = array.length - 1; i >= 0;i--){
21 //内循环,每两个元素比较
22 for(int j = 0;j < i; j++){
23 //如果j索引对应的值大于j+1索引对应的值
24 if(array[j] > array[j + 1]){
25 //开始对调
26 temp = array[j];
27 array[j] = array[j + 1];
28 array[j + 1] = temp;
29 }
30 }
31 }
32
33 }
34 }