数据结构与算法(Java) 2:选择排序

从头开始遍历,选择最小值与未排序部分的第一位交换位置。时间复杂度:O(N^2)

package section1;

import java.util.Arrays;

public class SelectionSort {
    public static void selectionSort(int[] arr){
        if(arr == null || arr.length < 2) return;

        for (int i = 0; i < arr.length; i++){
            int min = i;
            for (int j = i + 1; j < arr.length; j++){
                if (arr[j] < arr[min])  min = j;
            }

            change(arr, i, min);
            System.out.println("no." + i + ":" + Arrays.toString(arr));
        }
    }

    public static void change(int[] arr, int f1, int f2){
        int flag;
        flag = arr[f1];
        arr[f1] = arr[f2];
        arr[f2] = flag;
    }

    public static void main(String[] args){
        int arr[] = {2, 3, 5, 23, 0, 124, 23, 25};
        selectionSort(arr);
    }
}
发布了115 篇原创文章 · 获赞 33 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/Dorothy_Xue/article/details/105180646