八大排序算法~簡單選擇排序【記錄下標k變量的做用】

八大排序算法~簡單選擇排序【記錄下標k變量的做用】算法

1,思想:打擂臺法,數組中的前n-1個元素依次上擂臺「裝嫩」,後邊的元素一個挨着一個不服,一個一個上去換掉它數組

2,優化:經過記錄下標進行優化,減小交換的次數優化

//簡單選擇排序思想:打擂臺法,數組中的前n-1個元素依次上擂臺「裝嫩」,後邊的元素一個挨着一個不服,一個一個上去換掉它
    public static void main(String[] args) {
        int[] arr = {1, 4, 0, 6, 2, 7};
//        for (int i = 0; i < arr.length -1; i++){
//            for(int j = i + 1; j <= arr.length - 1; j++){
//                if(arr[i] > arr[j]){
//                    int temp = arr[i];
//                    arr[i] = arr[j];
//                    arr[j] = temp;
//                }
//            }
//        }
        //優化一下,經過具備標記做用的下標變量k(標記出最小元素),去標記全部元素比較完的最終結果後,
        // 而後在擂臺上的元素,再跟有標記記號的元素進行交換
        for (int i = 0; i < arr.length -1; i++){
            int k = i;
            for(int j = i + 1; j <= arr.length - 1; j++){
                if(arr[k] > arr[j]){
                  k = j;
                }
            }
            if(k != i){ //最終有標記記號的元素不是它自己
                int temp = arr[i];
                arr[i] = arr[k];
                arr[k] = temp;
            }
        }
        System.out.println("排序後結果:");
        for(int i = 0; i < arr.length; i++){
            System.out.println(arr[i]);
        }
    }
相關文章
相關標籤/搜索