zoukankan      html  css  js  c++  java
  • 排序(五)选择排序

    原理:

    每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列最后,直到全部记录排序完毕

    每一趟排序获得最小数的方法:

    for循环进行比较,定义一个第三个变量temp,首先前两个数比较,把较小的数放在temp中,然后用temp再去跟剩下的数据比较,如果出现比temp小的数据,就用它代替temp中原有的数据。

    举个栗子

    数组 int[] arr={5,2,8,4,9,1};
    第一趟排序:1  2  8  4  9  5
    第二趟排序:1  2  8  4  9  5
    第三趟排序:1  2  4  8  9  5
    第四趟排序:1  2  4  5  9  8
    第五趟排序:1  2  4  5  8  9

    实现:

    public static void selectSort(int[] num) {
            for (int i = 0; i < num.length; i++) {
                int k = i;
                for (int j = num.length - 1; j > i; j--) {
                    if (num[j] < num[k]) {
                        k = j;
                    }
                }
                if (k != i) {
                    swap(num, i, k);
                }
            }
        }

    算法分析

    平均时间复杂度:O(n2)

    最好时间复杂度:O(n2)

    最坏时间复杂度:O(n2)

    空间复杂度:O(1)

    稳定性:不稳定

  • 相关阅读:
    markdown文件的基本常用编写
    寒假作业安排及注意点
    Day2
    Day1
    Python格式化
    Python 遍历字典的键值
    python 判断是否为空
    git 回退版本
    Python获取当前文件夹位置
    Python3, Python2 获取当前时间
  • 原文地址:https://www.cnblogs.com/amei0/p/8521584.html
Copyright © 2011-2022 走看看