您的位置:首页 > 运维架构 > Shell

算法基础复习-ShellSort

2016-11-01 21:20 218 查看
前言:为了后续的实习面试,开始疯狂刷题,非常欢迎志同道合的朋友一起交流。因为时间比较紧张,目前的规划是先过一遍,写出能想到的最优算法,第二遍再考虑最优或者较优的方法。如有错误欢迎指正。博主首发CSDN,mcf171专栏。

博客链接:mcf171的博客

——————————————————————————————
虽然实现了Shell排序,但是还是不是很理解他的提升,原文参考希尔排序
时间效率:Best O(nlogn);Average O(nlog^2n) ;最坏 O(nlog^2n);空间复杂度: O(1);

public static void shellSort(int[] array){

int step = 1;
while (step < array.length)
step = step * 3 + 1;
while(step > 0){
for(int i = 0; i < step; i ++)
for(int j = i + step; j < array.length ; j += step)
for(int k = j - step; k >= 0; k-= step)
if(array[k] > array[k + step]) swap(array,k,k + step);
step /= 3;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 算法