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

    选择排序(交换排序):

      选择最小的,从前往后排,每一轮找出(除前面排好的)剩下元素中最小的值与当前值进行交换。

      由于找的是最小的数,如果有两个相同的最小数,那么靠后数就会被交换到前面,所以显然选择排序是不稳定的

      比较简单,看了前面的冒泡排序,链表也没必要了,直接上代码:

      

     public static void selectSort(int[] nums) {
             for (int i = 0; i < nums.length - 1; i++) {
                 int min = nums[i];//定义最小值
                 int index = i;//记录最小值的索引位置
        //下面就是寻找i+1到length中最小的值
                 for (int j = i + 1; j < nums.length; j++) {
                     if (nums[j] < min) {//寻找最小的数
                         min = nums[j];
                         index = j;//最小值的索引
                     }
                 }
                 if (index != i) {//如果当前值不是最小值,那么就将它与最小值交换
                     nums[index] = nums[i];
                     nums[i] = min;
                 }
             }
         }

    测试:

      8万随机数(0—1000万)排序时间:  

      after-before=4700ms

      时间复杂度为:均为O(n2)         空间复杂度:O(1)     该算法不稳定

  • 相关阅读:
    影响STA的因素-OCV
    FPGA的可靠性分析
    DFT
    Verilog 延时模型
    收缩数据库日志
    iis设置局域网访问,Context.Request.Url.Authority老是取出为localhost问题
    vs2012 后期生成事件命令报错 9009
    MIME配置
    sql 字符串拼接 =>for xml()
    js 切换embed的src值
  • 原文地址:https://www.cnblogs.com/taichiman/p/13268894.html
Copyright © 2011-2022 走看看