原文:Java实现希尔排序

华杰让我看了一道面试题:现有一段程序S,可以对任意n个数进行排序。如果现在需要对n 个数进行排序,最少需要调用S多少次 只允许调用S,不可以做别的操作 。 看到了这个,我想试试希尔排序,就学学。 一.理论准备 希尔排序是基于直接插入排序的,不懂得请看这一篇http: www.cnblogs.com hxsyl archive .html 希尔排序 Shell Sort 是插入排序的一种,是针对直 ...

2013-09-09 12:05 4 7695 推荐指数:

查看详情

Java实现希尔排序

  希尔排序(Shell Sort)是插入排序的一种,是针对直接插入排序算法的改进,是将整个无序列分割成若干小的子序列分别进行插入排序希尔排序并不稳定。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 一、基本思想   先取一个小于n的整数d1作为第一个增量,把文件的全部 ...

Mon Oct 16 06:19:00 CST 2017 0 2929
希尔排序java实现

上篇blog中介绍的直接插入排序希尔排序就是对直接插入排序的一个优化。比如有这么一种情况:对一个无序数组进行从小到大的排序,但是数组的最后一个位置的数是最小的,我们要把它挪到第一个位置,其他位置的都要往后移动,要是这个数组非常大,那么直接插入排序的开销就非常大。 现在有一个 ...

Fri Mar 14 01:19:00 CST 2014 3 14401
希尔排序——Java实现

一、排序思想 希尔排序(Shell’s Sort)是插入排序的一种,是直接插入排序算法的一种更高版本的改进版本。 把记录按步长gap分组,对每组记录采用直接插入排序方法进行排序; 随着步长逐渐减小,所分成的组包含的记录越来越多;当步长值减小到1时,整个数据合成 ...

Mon Mar 25 19:38:00 CST 2019 0 3004
希尔排序的理解和实现(Java)

希尔排序原理 希尔排序(shell sort)这个排序方法又称为缩小增量排序,是1959年D·L·Shell提出来的。 该方法的基本思想是:设待排序元素序列有n个元素,首先取一个整数increment(小于n)作为间隔将全部元素分为increment个子序列,所有距离 ...

Sat Mar 16 06:34:00 CST 2019 0 569
排序系列 之 希尔排序算法 —— Java实现

 基本思想:   希尔排序的实质就是分组插入排序,又称缩小增量法。   将整个无序序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序时,再对全体元素进行一次直接插入排序。   因为直接插入排序在元素基本有序 ...

Tue Jan 10 19:38:00 CST 2017 0 4315
常用算法Java实现希尔排序

  希尔排序严格来说是基于插入排序的思想,又被称为缩小增量排序。   具体流程如下:   1、将包含n个元素的数组,分成n/2个数组序列,第一个数据和第n/2+1个数据为一对...   2、对每对数据进行比较和交换,排好顺序;   3、然后分成n/4个数组序列 ...

Sun Aug 28 19:13:00 CST 2016 0 8292
java 希尔排序

思路 希尔排序希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。它与插入排序的不同之处在于,它会优先比较距离较远的元素。希尔排序又叫缩小增量 ...

Fri Jun 21 02:45:00 CST 2019 0 1158
希尔排序算法的php实现

  虽然现在各种程序语言都有其各自强大的排序库函数,但是这些底层实现也都是利用这些基础或高级的排序算法。   理解这些复杂的排序算法还是很有意思的,体会这些排序算法的精妙~   一、希尔排序(shell sort):希尔排序是基于插入排序的,区别在于插入排序是相邻的一个个比较(类似于希尔中h ...

Sat Jan 16 01:38:00 CST 2016 0 1697
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM