算法基础复习-ShellSort
2016-11-01 21:20
218 查看
前言:为了后续的实习面试,开始疯狂刷题,非常欢迎志同道合的朋友一起交流。因为时间比较紧张,目前的规划是先过一遍,写出能想到的最优算法,第二遍再考虑最优或者较优的方法。如有错误欢迎指正。博主首发CSDN,mcf171专栏。
博客链接:mcf171的博客
——————————————————————————————
虽然实现了Shell排序,但是还是不是很理解他的提升,原文参考希尔排序
时间效率:Best O(nlogn);Average O(nlog^2n) ;最坏 O(nlog^2n);空间复杂度: O(1);
博客链接: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; } }
相关文章推荐
- 通过一个位运算算法,感觉该复习基础知识了!
- 一步一步复习数据结构和算法基础-链表(1)
- 一步一步复习数据结构和算法基础-层次建立层次遍历二叉树
- 一步一步复习数据结构和算法基础-深度优先搜索
- 一步一步复习数据结构和算法基础-图的创建和基本操作(邻接矩阵)
- 复习:支持向量机的理论基础-学习算法的构造
- 一步一步复习数据结构和算法基础--kruskal算法
- 一步一步复习数据机构和算法基础-二叉树创建(前序建立二叉树)
- 一步一步复习数据结构和算法基础-稀疏矩阵基本操作
- 一步一步复习数据结构和算法基础-广度优先搜索
- 一步一步复习数据结构和算法基础-链表(2)
- 一步一步复习数据结构和算法基础-栈和队列(1)
- 一步一步复习数据结构和算法基础-循环链表
- 一步一步复习数据结构和算法基础-二叉树基本操作
- 一步一步复习数据结构和算法基础-顺序串
- 一步一步复习数据结构和算法基础(1)
- 一步一步复习数据结构和算法基础-单链表冒泡排序
- 一步一步复习数据结构和算法基础-栈的简单应用(1)
- 一步一步复习数据结构和算法基础-前序线索二叉树
- 一步一步复习数据结构和算法基础-prim算法(最小生成树)