首页 > 代码库 > 【数据结构与算法】希尔排序
【数据结构与算法】希尔排序
希尔排序的时间复杂度是O(n^1.3)~O(n^2),空间复杂度是O(1)。
代码如下:
/** * 源码名称: ShellSort.java * 日期:2014-08-11 * 程序功能:希尔排序 * 版权:CopyRight@A2BGeek * 作者:A2BGeek */ public class ShellSort { public void shellSort(int[] in) { int length = in.length; int span = length / 2; int i, j; while (span >= 1) { // Selection Sort begin for (i = span; i < length; i++) { int tmp = in[i]; for (j = i - span; j >= 0 && tmp < in[j]; j -= span) { in[j + span] = in[j]; } in[j + span] = tmp; } // Selection Sort end span /= 2; printArray(in); } } public void printArray(int[] in) { for (int i : in) { System.out.print(i + " "); } System.out.println(); } public static void main(String[] args) { int[] testCase = { 1, 3, 4, 10, 2, 5, 6, 7, 9, 11 }; ShellSort mShellSort = new ShellSort(); mShellSort.printArray(testCase); mShellSort.shellSort(testCase); mShellSort.printArray(testCase); } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。