希尔排序算法(Java语言)

原创 2016年05月30日 13:41:05

希尔排序以插入排序为基础。

希尔排序的每一趟需要选择一个步长,并按照步长进行插入排序。


	/**
	 * 希尔排序算法
	 * @param v
	 * @return
	 */
	public int shellSort(T v[]) {
		int n = v.length;
		for (int gap = n / 2; gap > 0; gap = gap / 2) {
			for (int i = gap; i < n; i++) {
				T temp = v[i];
				int j = i - gap;
				for (; j > -1 && temp.compareTo(v[j]) < 0; j -= gap) {
					v[j + gap] = v[j];
				}
				v[j + gap] = temp;
			}
		}
		return 0;
	}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

排序算法(Java语言)——希尔排序

希尔排序Shellsort的名称源于它的发明者Donald Shell,该算法是冲破二次时间屏障的第一批算法之一,不过,直到它最初被发现的若干年后才证明了它的亚二次时间界。它通过比较相距一定间隔的元素...

算法入门---java语言实现的希尔排序小结

标准实现: /** * 希尔排序,是一种改进的插入排序。它是基于插入排序在元素基本有序的情况下效率很高(会中断比较直接返回)这一特性。 * 核心思想:以不同的间隔...

Java语言实现六种排序算法

  • 2016年07月15日 11:55
  • 2KB
  • 下载

用java语言写的四种排序算法

  • 2008年12月15日 18:25
  • 11KB
  • 下载

(数据结构与算法分析 八)------插入排序,希尔排序,归并排序的实现( Java语言描述)

首先是插入排序,原理没什么好说的 package com.bird.seven; /** * 插入排序的实现 * @author Bird * */ public class InsertS...

Java语言实现各种排序算法

Java语言实现各种排序算法

基数排序算法(Java语言)

基数排序算法基本思路: 依次对关键字的第1~N位进行排序,最终所有关键就得到了正确排序。...

快速排序算法(Java语言)

快速排序基本思路: 在待排序数据中选择一个中间数,把待排序的数分成两组,一组是小于中间数的,另一个是不小于间数的。 再针对每一组数重复上面的过程,最终完成排序。 分组的目的是让左边的数都小于中间...

常见的几大排序算法——Java语言描述

排序是重要的算法,熟练地掌握各种排序算法是程序员必备的素质。博主学习排序的时候经常去翻阅他人博客,收获很大,总结出了各种排序,现在分享出来。所有算法都是经过博主检验的,应该没啥大问题。...

四种经典排序算法总结,自己Java语言实现

选择排序 冒泡排序 插入排序 快速排序
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:希尔排序算法(Java语言)
举报原因:
原因补充:

(最多只允许输入30个字)