介绍
这篇文章给大家分享的是有关希尔排序算法是什么的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
希尔排序就是直接插入排序的改进版,也属于一种插入排序。改进的地方在于每次遍历设置一个步长然后进行直接插入排序,完成一次遍历就将步长减半,直到步长小于等于1 .
由于每次移动都会移动一个步长的距离,而直接插入排序每次移动只移动一步,所以希尔排序的效率是要比直接插入排序的效率要高的。
算法实现:
公共静态孔隙shellSort (int[]数组){ int一步=array.length; 而(真){ 步骤/=2; for (int i=0;我& lt;一步;我+ +){ for (int j=我+一步;j & lt;array.length;j +=步骤){ int tmp=array [j]; int j k=; 而(k祝辞=一步,,数组(k -步骤)比;{//tmp)将大于tmp的数往后移 数组[k]=[k -一步]数组; k -=步骤; } 数组[k]=tmp;//插入 } } 如果(步骤& lt;=1) 返回; } }
感谢各位的阅读!关于希尔排序算法是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!