码迷,mamicode.com
首页 > 编程语言 > 详细

选择排序的JavaScript实现

时间:2018-09-02 18:50:47      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:selection   算法   排序   index   sele   复杂   hang   break   性能   

思想

原址比较的排序算法。即首先找到数结构中的最小值并将其放置在第一位,然后找到第二小的值将其放置在第二位...以此类推。

代码

function selectionSort(arr) {
  const length = arr.length;
  for (let i = 0; i < length - 1; i++) {
    let minIndex = i;
    let changeOccur = false;

    for (let j = i + 1 ; j < length ; j++) {
      if (arr[j] < arr[minIndex]) {
        minIndex = j;
        changeOccur = true;
      }
    }

    if(!changeOccur) {
      break;
    }
    if (minIndex !== i) {
      const temp = arr[i];
      arr[i] = arr[minIndex];
      arr[minIndex] = temp;
    }
    
  }
}

性能分析

  • 时间复杂度:最好O(n),平均、最坏O(n^2)
  • 空间复杂度: O(1), 不稳定

选择排序的JavaScript实现

标签:selection   算法   排序   index   sele   复杂   hang   break   性能   

原文地址:https://www.cnblogs.com/Bonnie3449/p/9574501.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!