引言

良久不写文章了,最近在学小程序感觉没得写,明天就来说说面试必备的排序算法吧,话不多唠,间接上代码,以下会画图解说每种排序的规定

冒泡排序

代码见图一,注解见图二(以下同上)

 function bubbleSort(ary) {     for (let i = 0; i < ary.length-1; i++) {       for (let j = 0; j < ary.length - 1 - i; j++) {         if (ary[j] > ary[j + 1]) {           let temp = ary [j + 1];           ary [j + 1] = ary[j];           ary[j] = temp;         }       }     }     return ary   }   let ary = [12, 8, 24, 16, 1];   let newAry = bubbleSort(ary);   console.log(newAry);

插入排序

function insertSort(ary) {     let handle = [];     handle.push(ary[0]);     for (let i = 1; i < ary.length; i++) {       for (let j = handle.length - 1; j >= 0; j--) {         if (ary[i] > handle[j]) {           handle.splice(j + 1, 0, ary[i]);           break         }         if (j === 0) {           handle.unshift(ary[i])         }       }     }     return handle   }   let ary = [12, 8, 24, 16, 1];   let newAry = insertSort(ary);   console.log(newAry);

疾速排序

 function quickSort(ary) {    if (ary.length <= 1) return ary;    let middle = ary.splice(Math.floor(ary.length / 2), 1)[0];    let leftAry = [], rightAry = [];    ary.forEach(v => v < middle ? leftAry.push(v) : rightAry.push(v));    return quickSort(leftAry).concat(middle, quickSort(rightAry))  }  let ary = [12, 8, 15, 10, 24, 16, 1];  let newAry = quickSort(ary);  console.log(newAry);

明天不想谈话(其实并不知道说啥),就这样,哈哈哈哈哈