JavaScript排序算法之冒泡排序

冒泡排序

冒泡算法在所有算法当中是最简单的,但是在运行时间方面,冒泡排序则是最差的。

原理:
比较任何相邻的项,如果第一个比第二个大,就交换彼此。元素项向上移动至正确的位置。

class ArrayList{
  constructor(){
    this.array = []
  }
  insert(item){
    this.array.push(item)
  }
  toString(){
    return this.array.join()
  }
  bubbleSort(){
    var len = this.array.length;
    for(var i = 0;i<len;i++){ // 控制每一项就经过一轮
      for(var j = 0; j<len-1-i;j++){ // 每经过一轮就至少排好一项,所以就可以减去i
        if(this.array[j]>this.array[j+1]){
          this.swap(this.array,j,j+1)
        }
      }
    }
  }
  swap(array,idx1,idx2){
   [array[idx1],array[idx2]] = [array[idx2],array[idx1]] // ES6解构赋值
  }
}
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.bubbleSort()
console.log(list.toString())
// 2,3,3,4,6,8,9,9

你可能感兴趣的:(数据结构,javascript)