zoukankan      html  css  js  c++  java
  • 004-排序算法-选择排序

    一、概述

      基本思想:在未排序序列当中找到最小(最大)元素,然后将最小(最大)元素放到排序序列的末尾,依次类推,直到排序完毕。

    排序方法时间复杂度(平均)时间复杂度 (最坏)时间复杂度(最好)空间复杂度稳定性
    选择排序 O(n^2) O(n^2) O(n^2) O(1) 不稳定

     1.1、算法说明

      

      外循环定义一个变量 i 控制循环过程,当 i = arr.length-1 的时候循环结束。然后内循环找出最小值,交换。

    1.2、代码实现

        public static void selectSort(int[] a) {
            for (int i = 0; i < a.length; i++) {
                int min = i;//无序区中最小元素位置
    
                // 找出"a[i+1] ... a[n]"之间的最小元素,并赋值给min。
                for (int j = i + 1; j < a.length; j++) {
                    if (a[j] < a[min])
                        min = j;
                }
    
                // 若min!=i,则交换 a[i] 和 a[min]。
                // 交换之后,保证了a[0] ... a[i] 之间的元素是有序的。
                if (min != i) {
                    int tmp = a[i];
                    a[i] = a[min];
                    a[min] = tmp;
                }
            }
        }

    代码地址:地址 中的rithm-001-sort中 SelectSort  

    大树

  • 相关阅读:
    ILMerge将源DLL合并到目标EXE
    Nginx+redis的Asp.net
    JwtBearer认证
    Token认证登录以及权限控制
    ES索引
    Linux文本编辑器vim
    集群 安装 配置FastDFS
    When to use next() and return next() in Node.js
    spring-boot-starter-druid
    nodejs express
  • 原文地址:https://www.cnblogs.com/bjlhx/p/10936007.html
Copyright © 2011-2022 走看看