• 排序算法-(2)-选择排序


    排序思想:
    从数组某个位置i开始向后遍历数组,选出最小的一个和第I个位置交换,以此类推,直到从第N个和第N-1个元素中选出最小的放在第N-1个位置。

    时间复杂度:
    比较次数为 ( N - 1 ) + ( N - 2 ) + ...... + 1 = N^2/2,所以时间复杂度为O(n^2)

    private void insertSort(int[] arr) {
    private void selectSort(int[] a) {
            if (a == null || a.length <= 0) {
                return;
            }
            for (int i = 0; i < a.length; i++) {
                int min = i; /* 将当前下标定义为最小值下标 */
    
                for (int j = i + 1; j < a.length; j++) {
                    if (a[min] > a[j]) { /* 如果有小于当前最小值的关键字 */
                        min = j; /* 将此关键字的下标赋值给min */
                    }
                }
                if (i != min) {/* 若min不等于i,说明找到最小值,交换 */
                    int tmp = a[min];
                    a[min] = a[i];
                    a[i] = tmp;
                }
            }
        }
    }
    
  • 相关阅读:
    java基础_面试题笔记
    ACM-ICPC 2018 Xuzhou Online Contest题解
    覆盖点问题总结
    2018icpc沈阳网络赛题解(转发)
    树链剖分
    树状数组
    线段树板子
    sdoi2016生成魔咒
    洛谷3804
    大佬博文收集
  • 原文地址:https://www.cnblogs.com/tigerson/p/7150542.html
Copyright © 2020-2023  润新知