排序算法

106 阅读1分钟

1.冒泡排序

    含义:冒泡排序比较所有相邻的两个项,如果第一个比第二个大,则交换他们,元素项向上移动至正确顺序,就好像气泡升至表面一样,冒泡排序应此得名

  

function bubbleSort(array, compareFn =defaultCompare){
    const { length } = array; //{1}
    for(let i = 0;i<length;i++){ //{2}
      for(letj =0;j<length-1;j++){ //{3}
        if(compareFn(array[j],array[j+1])=== Compare.BIGGER_THAN){ // {4}
          swap(array,j,j+1);
        }
       }
      }
      return array;
}


function defaultCompare(a,b){
  return a<b? Compare.LESS_THAN : Compare.BIGGER_THAHN 
}
function swap(array,a,b){
   // 方法一
   const temp = array[a];
   array[a] = array[b]
   array[b] = temp
   // 方法二 数组解构赋值(数组长度大于2时不适用)
  [array[a],array[b]]  = [array[b],array[a]]; 
   // 方法三
   array.splice(0,1,...array.splice(1,1,array[0]))
}