希尔排序
今天自己学习了一下希尔排序,记录一下。
希尔排序会用到插入排序,是插入排序的升级版。
先放一张图片,根据图来理解比较形象
简单来说希尔排序分为三层循环。
第一层是增量不断减小到1的循环,
第二层是在某一增量下把数组分成若干组,
第三层是把第二层中分的每一组用插入排序排好序
插入排序的代码如下:
//直接插入排序
function charu(a) {
let long = a.length;
for (let i = 1; i < long; i++) {
let biao = a[i];
let j = i - 1
let temp;
for (j; j >= 0; j--)