JS算法--选择排序

描述:

选择排序是一种简单直观的排序算法,无论什么数据进去都是O(n2) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。通俗来说就是你们中间谁最小谁就出列,站到队列的最后边,然后继续对着剩余的无序数组说你们中间谁最小谁就出列,站到队列的最后边,一直到最后一个,继续站到最后边,这样数组就有了顺序,从小到大。

步骤:

  • 在未排序序列中找到最小(大)元素,存放到排序序列的起始位置
  • 从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
  • 重复第二步,直到所有元素均排序完毕。

实现:

function selectedSort (arr) {
  let newArr  = Array.from(arr);
  let len = newArr.length;
  for (let i = 0; i < len - 1; i++) {
    let minIndex = i;
    // 寻找最小值索引
    for (let j = i +1; j < len; j++) {
      if (newArr[j] < newArr[minIndex]) {
        minIndex = j;
      }
    }
    if (i !== minIndex) {
      [newArr[minIndex], newArr[i]] = [newArr[i], newArr[minIndex]]
    }
  }
  return newArr
}

参考:https://segmentfault.com/a/1190000009366805

 

posted @ 2018-06-04 19:35  大地长空  阅读(206)  评论(0编辑  收藏  举报