Java之“选择排序”

用Java写“选择排序”

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

选择排序是不稳定的(所谓稳定的理解就是 假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的。)

思想:找到数组中未排序部分的“最数”与数组未排序部分的最后一位进行交换

  • 若只有一个数则不需要选择了,直接输出

public class Main {
    public static void main(String[] args) {
        int[] a = new int[10];
        if (a.length == 1) {
            System.out.println(a[0]);
        } else {
            for (int i = 0; i < a.length; i++) {
                a[i] = (int) (Math.random() * 100);
            }
            for (int i : a) {
                System.out.print(i + " ");
            }
            System.out.println();
            for (int i = 0; i < a.length - 1; i++) {
                int t = a[0];//数组的第一个数
                int m = 0;
                for (int j = 0; j < a.length - i; j++) {
                    if (t < a[j]) {//选出未排序的最数
                        t = a[j];
                        m = j;//记录此时的数组下标
                    }
                }
                int p = a[a.length - i - 1];//记录未排序的最后一位数
                a[a.length - i - 1] = t;
                a[m] = p;
            }
            for (int i : a) {//迭代输出
                System.out.print(i + " ");
            }
        }
    }
}

附运行截图

在这里插入图片描述

发布了23 篇原创文章 · 获赞 0 · 访问量 809

猜你喜欢

转载自blog.csdn.net/qq_43581283/article/details/104302373