不过这里我们除了记录key值以外,还要记录此时的keyi(key值下标),然后end往前遍历找小,start往后遍历找大,只有都找到了,才能交换,当start >= end的时候,还有与keyi交换,因为我们是以key作为分界点的。以上只是第一趟的结果,我们还需要不断的调整,[left,keyi-1][keyi+1,right]的区间的顺序,最终才能有序,就是我提到的。希尔排序可以看做是插入排序的优化版,插入排序如果排的是有序数组,那将非常快,我们这次先对原数组进行预排序,先让数组部分有序,怎么做呢?