3 分钟学会选择排序

思路:选择排序就是每次都选择最小的元素添加到到有序区域的末尾

  1. 分为有序区与待排区,开始有序区长度为 0
  2. 在待排区找到最小的元素,与有序区+1 位置交换,一趟比较结束。一共需要进行 n-1 趟
  3. 通过在待排区域元素的依次比较,选择最小元素
  4. 时间复杂度O(n^2),最好与最坏情况,为了查找到最小元素,内层的循环都需要执行

public class Solution {
    public static void selectSort(int[] array) {
        int minIndex;
        int temp;
        for (int i = 0; i < array.length - 1; i++) {
            minIndex = i;
            for (int j = i + 1; j < array.length; j++) {
                if (array[j] < array[minIndex]) {
                    minIndex = j;
                }
            }
            if (minIndex != i) {
                temp = array[i];
                array[i] = array[minIndex];
                array[minIndex] = temp;
            }
        }
    }

    public static void main(String[] args) {
        int[] array = new int[]{2, 5, 1, 6, 9, 3};
        selectSort(array);
        for (int i : array) {
            System.out.print(i + " ");
        }
    }
}
发布了244 篇原创文章 · 获赞 16 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq_29150765/article/details/105187123