數據結構(排序)--選擇排序

數據結構–選擇排序
代碼實現:

package cn.hncu;

import java.util.Scanner;
//選擇排序
//優化版選擇排序-----從時間複雜度和空間複雜度來進行優化(主要從交換的次數進行控制,做到只交換一次就能找到最小(大)的數)

public class chooseSort2 {
    public static void main(String[] args) {
        //
        Scanner sc = new Scanner(System.in);
        int[] arr = new int[8]; // 給數組中的8個數字進行排序
        for (int i = 0; i < arr.length; i++) {
            arr[i] = sc.nextInt(); // 依次給數組中的每個元素進行賦值操作
        }

        // 下面進行排序操作
        //注意一下兩者(外層循環和內層)的比較趟數
        for (int i = 0; i < arr.length - 1; i++) { // 進行排序的趟數
            int k = i;
            for (int j = i + 1; j < arr.length; j++) { // 每趟排序進行的比較次數
                if (arr[k] > arr[j]) {
                    // 交換兩個數的位置
                    k = j;
                    //swap(arr, i, j); // 每次把最小的那個數拿到前面,依次排序過去----優化版把這裏優化了
                }
            }
            swap(arr,i,k);    //只進行一次交換
        }
        // 增強for循環輸出排序後的數組
        for (int x : arr) {
            System.out.print(x + " ");
        }
    }

    private static void swap(int[] arr, int i, int j) {
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }

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