Just do it
专注做自己的事,有想做的事就去做好了

给定一个数组,做排序,从第0的下标开始,找到0-n下标中最小的数,做交换操作;从第1的下标,找到1-n下标中最小的数,做交换操作;以此类推,直到完成整个排序。

题解:

    public static void selectionSort(int[] arr) {
        // 边界条件判断
        if (arr == null || arr.length < 2) {
            return;
        }
        int n = arr.length;
        for (int i = 0; i < n; i++) {
            // 中间变量记录最小值的下标
            int minValueIndex = i;
            for (int j = i + 1; j < n; j++) {
                minValueIndex = arr[j] < arr[minValueIndex] ? j : minValueIndex;
            }
            swap(arr, i, minValueIndex);
        }
    }
    // 交换操作
    public static void swap(int[] arr, int index, int minValueIndex){
        int tmp = arr[index];
        arr[index] = arr[minValueIndex];
        arr[minValueIndex] = tmp;
    }

 

 

 

// 边界条件判断
posted on 2025-02-23 17:41  Ireck  阅读(6)  评论(0)    收藏  举报