文章目录 前言 一、插入排序的缺点 二、希尔排序 三、 寻找间隔 四、java实现 五、总结 前言 希尔排序是基于插入排序实现的(如果不了解插入排序,可以先阅读这篇文章) 一、插入排序的缺点 假设数据中最小的数排在靠右端位置上,这本来是较大值的数据所在位置,把这个小数据移动到左边位置上,所有的中间数据项都必须向右移动一位。 这个步骤对每一个数据项都执行了将近N次的复制。(虽然不是所有数据项都必须移动N个位置,但是数据项平均移动了N/2位置)执行N次N/2个位移,总共是 N 2 / 2 N^2/2 N2/2次复制。因此,插入排序的执行效率是 O ( N 2 ) O(N^2) O(N