欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js 气泡排序

程序员文章站 2022-06-09 19:13:03
...

气泡排序结束的条件是:一趟排序过程中没有进行过交换记录的操作。

var array = [{
  key: 2,
  val: 2,
},{
  key: 1,
  val: 1
},{
  key: 9,
  val: 9
},{
  key: 3,
  val: 3
}]
array.forEach(item => console.log(item.key));
console.log('-'.repeat(30));

function buddle (array) {
    let i = array.length - 1;
    let lastChangeIndex = 1;
    while (i > 1) {
      lastChangeIndex = 1;
      for (let j = 0; j < i; j++) {
        if (array[j].key > array[j+1].key) {
          swap(array,j,j+1);
          lastChangeIndex = j;
        }
      }
      i = lastChangeIndex;
    }
}

function swap (array,i,j) {
    [array[i],array[j]] = [array[j],array[i]];
}

buddle(array);
console.log(array);