`

排序算法shell sort

阅读更多
其它排序算法  http://liangge0218.iteye.com/blog/754720
	public void shellSort(Comparable[] src) {
		//初始步长,可以取原长一半,以后每次减半.这个比较简单,好记
		int step = src.length / 2;
		while (step >= 1) {
			// 从step开始,关键(1)是i++,对每个步长间隔都排序
			for (int i = step; i < src.length; i++) {
				Comparable temp;
				// 内部采用的是冒泡排序
				for (int j = i; j >= step; j = j - step) {
					if (src[j].compareTo(src[j - step]) < 0) {
						temp = src[j];
						src[j] = src[j - step];
						src[j - step] = temp;
					} else { // 关键(2)是else中的break; 利用了前面各个step的排序,不用交换的就break
						break;
					}
				}
			}
			step = (step) / 2;
		}
	}

还有就是两个边界,int i = step和 j >= step
分享到:
评论

相关推荐

    shell排序shellsort

    数据结构课程排序算法中的经典shell排序

    排序算法-基于C语言实现的排序算法之ShellSort实现.zip

    ShellSort,又称希尔排序,是由美国计算机科学家Donald Shell于1959年提出的一种改进的插入排序算法。它通过将待排序的元素按照一定的间隔分组,然后对每组进行插入排序,随着间隔逐渐减小,最终达到整体有序。这种...

    排序算法之ShellSort

    python 排序算法之ShellSort

    希尔排序(Shell Sort)是一种改进版的插入排序算法.pdf

    希尔排序在上述代码中,`shellSort`函数实现了希尔排序算法。首先,通过`gap`将数组分成多个子序列,然后对每个子序列进行插入排序。随着排序的进行,`gap`逐渐减小,直到`gap`为1,最后对整个数组进行一次插入排序...

    python常用排序算法汇总

    # sort.shellSort() #希尔排序 # sort.insertionSort() #插入排序 # sort.Selectionsort1() #选择排序 # sort.heapSort() #堆排序 # sort.countSort() #计数排序 # sort.quickSort() #快速排序 该排序算法把...

    基于python的排序算法-希尔排序Shell Sort

    希尔排序(Shell Sort)是一种插入排序的改进版,由Donald Shell在1959年提出。它是通过将待排序的数据序列划分为多个子序列,然后对每个子序列进行插入排序,逐渐减少子序列的间隔,直到间隔为1,即整个序列成为一...

    西门子shell排序算法在simotion中的实现

    **Shell排序算法详解及其在Simotion中的应用** Shell排序,由美国计算机科学家Donald Shell于1959年提出,是一种改进的插入排序算法,通过设置一个间隔序列来减少比较和交换的操作,从而提高了排序的效率。它巧妙地...

    C 冒泡Shell排序算法

    本文将详细介绍C语言实现的冒泡Shell排序算法。 首先,冒泡排序(Bubble Sort)是一种简单直观的排序算法。它重复地遍历待排序的序列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历序列的工作是...

    九种经典排序算法的实现

    在IT领域,排序算法是计算机科学的基础之一,它在数据处理和数据分析中起着至关重要的作用。本资源提供了九种经典的排序算法实现,全部用C++编程语言编写。以下是这九种排序算法的详细说明: 1. **折半插入排序...

    04_shell_sort_shell排序算法_

    **Shell排序**是一种插入排序的变种,由Donald Shell在1959年提出,它通过将待排序的数组元素按某个增量分组,然后对每组进行...然而,由于其简单性和实现的易读性,Shell排序在教育和理解排序算法时仍有一定的价值。

    shellsort希尔排序算法增加最佳组合1

    Marcin Ciura在“Best Increments for the Average Case of Shellsort”论文中提出了一种新的增量序列,该序列经过分析后,能将希尔排序的平均运行时间降低约3%,并且有理由相信这些序列可能是最优的。 传统上,...

    PHP排序算法之希尔排序(Shell Sort)实例分析

    function ShellSort(array &$arr) { $count = count($arr); $inc = $count; // 初始增量 do { $inc = ceil($inc / 2); // 计算下一个增量 for ($i = $inc; $i $count; $i++) { $temp = $arr[$i]; $j = $i - ...

    C++的Shell排序算法代码学习

    ### C++中的Shell排序算法详解 #### 一、Shell排序简介 Shell排序是插入排序的一种扩展,由Donald Shell于1959年提出。它通过将原始数组分割成多个子序列,分别对这些子序列进行插入排序来提高插入排序的效率。随着...

    经典算法的C#源码实现

    经典排序算法 - 希尔排序Shell sort 经典排序算法 - 堆排序Heap sort序 经典排序算法 - 地精排序Gnome Sort 经典排序算法 - 奇偶排序Odd-even sort 经典排序算法 - 梳排序Comb sort 经典排序算法 - 耐心排序...

    cpp-八大排序插入shell选择堆冒泡快速归并基数

    **排序算法是计算机科学中的重要概念,特别是在编程和数据处理领域。本文将深入探讨标题中提到的八大排序算法:插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序以及基数排序。** 1. **插入...

    内部排序算法比较 interal sort compare

    以下是对标题和描述中提到的几种内部排序算法的详细说明: 1. **选择排序(Selection Sort)** 选择排序的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置。直到全部待...

    希尔排序(Shell Sort)

    使用MATLAB实现一个简单的希尔排序的例子

    多种排序算法C代码实现

    选择(SelectSort)、插入(InsertSort)、冒泡(BubbleSort)、Shell排序(ShellSort)、快速排序(QuickSort)、快速排序的改进算法(QStackSort)、合并排序算法(MergeSort)、 合并排序算法的改进算法(MergeSort2)、堆排序...

    7-2算法ShellSort1

    在提供的代码中,`ShellSort`函数实现了Shell排序的基本流程。首先,定义初始间隔`gap`为待排序元素的数量`n`。接着,进入一个while循环,条件是`gap`大于等于1。在每次循环中,`gap`会减半,直到`gap`变为1,这对应...

    Sort_排序算法_

    在计算机科学中,排序算法是数据结构领域的重要组成部分,它涉及到如何有效地对一系列元素进行排列。排序算法的应用广泛,从数据库管理系统到数据分析,再到日常软件的实现,无处不在。以下将详细介绍标题和描述中...

Global site tag (gtag.js) - Google Analytics