Javascript排序算法之选择排序

选择排序

这个算法倒是非常容易理解,就是在数据结构中找到最小值,并放置在第一位,然后找第二小的值,以此类推。
在这里插入图片描述

class ArrayList{
  constructor(){
    this.array = []
  }
  insert(item){
    this.array.push(item)
  }
  toString(){
    return this.array.join()
  }
  swap(array,idx1,idx2){
   [array[idx1],array[idx2]] = [array[idx2],array[idx1]] // ES6解构赋值
  }
  selectionSort(){
    var len = this.array.length,indexMin;
    for(var i = 0;i<len-1;i++){ // 直到倒数第二项
      indexMin = i;
      for(var j = i+1;j<len;j++){ // 找到比当前项还小的项的索引值
        if(this.array[indexMin]>this.array[j]){
          indexMin = j
        }
      }
      if(i !== indexMin){ // 当前项的值不是最小的
        this.swap(this.array,i,indexMin) // 交换两个项
      }
    }
  }
}
let list = new ArrayList()
list.insert(6)
list.insert(9)
list.insert(3)
list.insert(4)
list.insert(3)
list.insert(8)
list.insert(9)
list.insert(2)
list.selectionSort()
console.log(list.toString())
// 2,3,3,4,6,8,9,9
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章