算法3 七大排序之:直接插入排序和希尔排序(2)

public class InsertSortPkShellSort { public static void main(String[] args) { testInsertSort(); testShellSort(); } /** * 测试直接插入排序耗费的时间 */ public static void testInsertSort() { int[] list = new int[10000]; for (int i = 0; i < 10000; i++) { list[i] = (int) (Math.random() * 100000); } // 直接插入排序 long start = System.currentTimeMillis(); InsertSort.insertSort(list); long end = System.currentTimeMillis(); System.out.println("直接插入排序耗费的时间:" + (end - start)); display(list); } /** * 测试希尔排序耗费的时间 */ public static void testShellSort() { int[] list = new int[10000]; for (int i = 0; i < 10000; i++) { list[i] = (int) (Math.random() * 100000); } // 希尔排序 long start = System.currentTimeMillis(); ShellSort.shellSort(list); long end = System.currentTimeMillis(); System.out.println("希尔排序耗费的时间:" + (end - start)); display(list); } /** * 遍历打印前10个数 */ public static void display(int[] list) { System.out.println("********排序之后的前10个数start********"); if (list != null && list.length > 0) { for (int i = 0; i < 10; i++) { System.out.print(list[i] + " "); } System.out.println(""); } System.out.println("********排序之后的前10个数end**********"); System.out.println(""); } } 

测试结果:

从测试结果可以看出,希尔排序比直接插入排序更快。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7bd59549e142c96b805137170e577c93.html