冒泡排序


1. 思想

2. 代码

根据以上分析, 将其转化为对应代码时关键点有两个:
\(step 1\) ?首先遍历所有元素;
\(step 2\) ?当遍历至元素\(arr[i]\)时, 比较其后面的所有元素\(arr[j](j > i)\)\(arr[i]\)的大小。若\(arr[j], 则执行swap function

public void bubbleSort(int[] arr) {
    for (int i = 0; i < arr.length; i++) {
        for (int j = i + 1; j < arr.length; j++) {
            if (arr[j] < arr[i]) {
                int tmp = arr[i];
                arr[i] = arr[j];
                arr[j] = tmp;
            }
        }
    }
}

Note: 以上代码是按照升序(从小到大)排列的,如果要按降序如何改变代码?
只需将上述if (arr[j] < arr[i])改为if (arr[j] > arr[i]),也就是后者元素如果大于前者才进行交换,那么大数就排到了前面。