歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java實現直接選擇排序算法

Java實現直接選擇排序算法

日期:2017/3/1 9:05:21   编辑:Linux編程
  • 基本思想

    直接選擇排序是從無序區選一個最小的元素直接放到有序區的最後。

    1. 初始狀態:無序區為a[1...n],有序區為空。
    2. 第一次排序:在無序區a[1...n]中選出最小的記錄a[k],將它與有序區的第一個元素交換,使a[1...1]和a[2...n]分別變為
      記錄個數增加1個的新有序區和記錄個數減少1個的新無序區。
    3. ... 經過n-1次排序結束。
  • 算法實現

    public void sort(int[] array) {
        for (int i = 0; i < array.length; i++) {
            int k = i;
    
            for (int j = i + 1; j < array.length; j++) { // 從無序區開始找最小的元素
                if (array[j] < array[i]) {
                    k = j; // 記錄最小的位置
                }
            }
    
            if (k != i) { // 如果array[i]不是無序區最小的,需要和無序區最小的進行交換
                int tmp = array[i];
                array[i] = array[k];
                array[k] = tmp;
            }
            // 如果array[i]是無序區最小的元素,不需要交換
        }
    }

Copyright © Linux教程網 All Rights Reserved