含动图,选择排序

public class SelectionSort {
    
    
    //时间复杂度:O(n^2),空间复杂度:O(1),时间复杂度最坏,最好情况都是O(n^2),不稳定。
    public static void main(String[] args) {
    
    
        int[] arr = {
    
    1, 3, 5, 2, 8, 4, 6, 7, 2};
        sort(arr);
        print(arr);
    }

    static void sort(int[] a) {
    
    

        for (int i = 0; i < a.length - 1; i++) {
    
    
            int minPos = i;
            for (int j = i + 1; j < a.length; j++) {
    
    
                //if (a[j] < a[minPos]) minPos = j;
                minPos = a[minPos] > a[j] ? j : minPos;
            }
            swap(a, i, minPos);
        }
    }

    static void print(int[] arr) {
    
    
        for (int k = 0; k < arr.length; k++) System.out.print(arr[k] + " ");
    }

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

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Sherlook_Holmes/article/details/120804046
今日推荐