天天看點

Java 數組 之 一維數組 冒泡排序算法

http://www.verejava.com/?id=16992682424030
/**
用冒泡算法:将成績arrays 從小到大排序輸出
思路:
    第一趟排序
    1. 将數組中n個元素從第一個元素開始 一一跟後面的元素比較
    2. 如果前面的資料比後面的資料大, 兩個交換位置直到一次循環完成,那麼數組中最大的資料将會排在數組的最後一個位置。
    第 i 趟排序
    3. 依次類推, 将剩下未排序的n-i個元素再類似 1,2過程一遍,這樣直到循環 n次結束後,數組中的元素就是從小到大排好序了.

    注意: 隻需要經過 n-1趟排序
*/

public class BubbleSort {
    
    public static void sort(int[] arrays) {
        //第一個循環控制n-1趟排序
        for (int i = 0; i < arrays.length - 1; i++) {
            //第二個循環控制每次要比較的元素個數n-1
            for (int j = 0; j < arrays.length - i - 1; j++) {
                if (arrays[j] > arrays[j + 1]) {
                    int flag = arrays[j];
                    arrays[j] = arrays[j + 1];
                    arrays[j + 1] = flag;
                }
            }
        }
    }

    public static void main(String[] args) {
        //一維數組的定義和初始化
        int[] scores = { 90, 70, 50, 80, 60, 85 };

        sort(scores);

        //輸出排序後的 scores
        for (int i = 0; i < scores.length; i++) {
            System.out.print(scores[i] + ",");
        }

    }
}