直接插入排序:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23package sort; public class InsertSort { public static void sort(int[] array , int len){ for(int i = 2; i < len ; ++i){ array[0] = array[i]; int j = i - 1; while(array[0] < array[j]){ array[j+1] = array[j]; --j; } array[j+1] = array[0]; } } public static void main(String[] args) { int[] array = {0,3,5,99,87,35,42,21}; sort(array , array.length); for(int i = 1; i< array.length ; i++){ System.out.print(array[i]+ " "); } } }
希尔排序:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34package sort; public class ShellSort { public static void shellInsert(int[] array , int len , int deldata ){ int j = 0; for(int i = 1+deldata; i <= len;i+=deldata){ array[0] = array[i]; if(array[i] < array[i-deldata]){ for(j = i-deldata;j>0 && array[j]>array[0];j-=deldata){ array[j+deldata] = array[j]; } array[j+deldata] = array[0]; } } } public static void shellSort(int[] array ,int len , int deldata[],int n){ for(int i = 1;i <= n ; i++){ shellInsert(array,len , deldata[i]); } } public static void main(String[] args) { int[] array = {0,2,6,4,99,44,63,63,35,44,88,77,33,222,35,25,3,2,67}; int[] deldata = {0,4,2,1}; long start = System.currentTimeMillis(); shellSort(array,array.length-1,deldata,deldata.length-1); System.out.println("排序时间:"+(System.currentTimeMillis()-start)); for(int i=1;i<array.length;i++){ System.out.print(array[i]+" "); } } }
最后
以上就是乐观火车最近收集整理的关于数据结构-插入类型排序的全部内容,更多相关数据结构-插入类型排序内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复