Java算法 - 選擇排序

選擇排序,升序。釋義參考百度百科

 

public static void selectionSort(int[] ints) {
    for (int i = 0; i < ints.length - 1; i++) {
        int minIndex = i;
        // 每一個元素都和剩下的未排序的元素比較
        for (int j = i + 1; j < ints.length; j++) {
            if (ints[minIndex] > ints[j]) {
                minIndex = j;
            }
        }
        // 經過一輪循環,k爲本輪最小值的下標,如果最小值下標不是自己,就把最小值跟自己互換位置
        if (minIndex != i) {
            int temp = ints[i];
            ints[i] = ints[minIndex];
            ints[minIndex] = temp;
        }
    }
}

 

測試代碼:

import java.util.Arrays;

public class SelectionSort {
    public static void main(String[] args) {
        int[] ints = {9, 12, 0, 5, -1};
        selectionSort(ints);
        System.out.println(Arrays.toString(ints));
    }

    public static void selectionSort(int[] ints) {
        for (int i = 0; i < ints.length - 1; i++) {
            int minIndex = i;
            // 每一個元素都和剩下的未排序的元素比較
            for (int j = i + 1; j < ints.length; j++) {
                if (ints[minIndex] > ints[j]) {
                    minIndex = j;
                }
            }
            // 經過一輪循環,k爲本輪最小值的下標,如果最小值下標不是自己,就把最小值跟自己互換位置
            if (minIndex != i) {
                int temp = ints[i];
                ints[i] = ints[minIndex];
                ints[minIndex] = temp;
            }
        }
    }
}
View Code

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章