• javascript排序算法-选择排序


    选择排序

    概念:选择排序大致的思路是找到数据结构中的最小值并将其放置在第一位,接着找到第二小的值并将其放在第二位,以此类推。

    复杂度: O(n^2)

    代码实现

    var swap = function (array, index1, index2){
      var aux = array[index1];
      array[index1] = array[index2];
      array[index2] = aux;
    }
    
    var selectionSort = function(array) {
      var length = array.length,// {1}声明一些将在算法内使用的变量
        indexMin;
      for (var i = 0;i < length -1;i++) {// {2}外循环
        indexMin = i;// {3}假设本迭代轮次的第一个值为数组最小值
        for (var j = i;j < length;j++) {// {4}从当前i的值开始至数组结束
          if (array[indexMin] > array[j]) {// {5}我们比较是否位置j的值比当前最小值小
            indexMin = j; // {6};如果是,则改变最小值至新最小值
          }
        }
        if (i !== indexMin) {
          swap(array, i, indexMin); // {7}最后,如果该最小值和原最小值不同(行{7}),则交换其值。
        }
      } // 复杂度是O(n^2)
      return array;
    }

    举例:下图是把[5,4,3,2,1]进行选择排序的一个过程

  • 相关阅读:
    【水】希望之花
    如何不用狄利克雷卷积证明莫比乌斯函数性质二
    【数学】gcd
    挂分宝典
    [luogu P6042]「ACOI2020」学园祭 题解
    [luogu P6041]「ACOI2020」布丁暗杀计划 题解
    11.19模拟
    「CSP-S2020」题解
    11.11模拟
    「洛谷P1445」樱花
  • 原文地址:https://www.cnblogs.com/ppxyq/p/10271372.html
Copyright © 2020-2023  润新知