设为首页 加入收藏

TOP

选择排序、插入排序和希尔排序(二)
2015-11-10 13:46:14 来源: 作者: 【 】 浏览:28
Tags:选择 排序 插入 希尔
一组有序记录,则完成排序。



实现代码:


public class ShellSort extends SortBase {


? ? @Override
? ? public Integer[] sort(Integer[] a) {
? ? ? ? // TODO Auto-generated method stub
? ? ? ? print("init",a);
? ? ? ? Integer h = a.length;
? ? ? ? Integer temp = 0;
? ? ? ? while(h >= 1) {
? ? ? ? ? ? for(int i=h;i? ? ? ? ? ? ? ? for(int j=i;j>=h && a[j] < a[j-h];j -= h) {
? ? ? ? ? ? ? ? ? ? temp = a[j];
? ? ? ? ? ? ? ? ? ? a[j] = a[j-h];
? ? ? ? ? ? ? ? ? ? a[j-h] = temp;
? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? h /= 9;
? ? ? ? }
? ? ? ? print("result",a);
? ? ? ? return a;
? ? }
? ?
? ? public static void main(String[] args) {
? ? ? ? Integer[] a = {2,1,5,9,0,6,8,7,3};
? ? ? ? (new ShellSort()).sort(a);
? ? }
}


运行结果:


init: [2 ,1 ,5 ,9 ,0 ,6 ,8 ,7 ,3]


1: [0 ,1 ,5 ,7 ,2 ,6 ,8 ,9 ,3]


2: [0 ,1 ,2 ,6 ,3 ,7 ,5 ,9 ,8]


3: [0 ,1 ,2 ,3 ,5 ,6 ,7 ,8 ,9]


result: [0 ,1 ,2 ,3 ,5 ,6 ,7 ,8 ,9]


效率:


最坏情况时间复杂度为:O(n^1.5),平均时间复杂度为O(nlogn)。


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇快速排序和三向快速排序 下一篇Angular 1 和 Angular 2 集成:无..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: