java算法 -- 冒泡排序

时间:2021-03-05 10:56:17
java算法 -- 冒泡排序
  1. 比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。
  2. 这样对数组的第 0 个数据到 N-1 个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。
  3. N=N-1,如果 N 不为 0 就重复前面二步,否则排序完成。
public class BubbleSortTest {


    public static void main(String[] args) {
        int[] array = {1, 2, 5, 41, 7, 11, 13, 17, 59, 19, 23, 29, 31, 37, 43, 47, 53};
        int[] bubbleSortArrays = bubbleSort(array);
        for (int s : bubbleSortArrays) {
            System.out.print(s + " ");
        }
    }

    /**
     * 冒泡排序
     * @param array
     * @return
     */
    private static int[] bubbleSort(int[] array) {
        int i, j;
        int n = array.length;
        for (i = 0; i < n; i++) {//表示 n 次排序过程。
            for (j = 1; j < n - i; j++) {
                if (array[j - 1] > array[j]) {//前面的数字大于后面的数字就交换
                    //交换 array[j-1]和 array[j]
                    int temp;
                    temp = array[j - 1];
                    array[j - 1] = array[j];
                    array[j] = temp;
                }
            }
        }
        return array;

    }
}