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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章