1.思路

(1)对未排序的各元素从头到尾依次比较相邻的两个元素大小关系

(2)如果左边的队员高, 则两队员交换位置

(3)向右移动一个位置, 比较下面两个队员

(4)当走到最右端时, 最高的队员一定被放在了最右边

(5)按照这个思路, 从最左端重新开始, 这次走到倒数第二个位置的队员即可.

(6)依次类推, 就可以将数据排序完成

2.复杂度

 比较次数:O(N^2)

 交换次数:O(N^2)

3.代码实现

function ArrayList(){
  this.array = []

  ArrayList.prototype.insert = function(item){
    this.array.push(item)
  }
ArrayList.prototype.bubbleSort = function(){ let length = this.array.length for(let i=length-1; i>=0; i--){ for(let j=0; j<i; j++){ if(this.array[j]>this.array[j+1]){ let temp = this.array[j] this.array[j] = this.array[j+1] this.array[j+1] = temp } } } } }
// 测试
var list = new ArrayList()
list.insert(3)
list.insert(6)
list.insert(4)
list.insert(2)
list.insert(11)
list.insert(10)
list.insert(5)
list.bubbleSort()
console.log(list)    // 2,3,4,5,6,10,11
posted on 2021-03-17 19:22  李起桉  阅读(87)  评论(0编辑  收藏  举报