`

排序算法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

    排序算法 排序算法_基于C语言实现的排序算法之ShellSort实现

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

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

    python常用排序算法汇总

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

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

    本文实例讲述了PHP排序算法之希尔排序(Shell Sort)。分享给大家供大家参考,具体如下: 基本思想: 希尔排序是指记录按下标的一定增量分组,对每一组使用 直接插入排序 ,随着增量逐渐减少,每组包含的关键字越来越...

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

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

    经典算法的C#源码实现

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

    希尔排序(Shell Sort)

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

    多种排序算法C代码实现

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

    04_shell_sort_shell排序算法_

    本文件包含shell排序的基本思路,代码实现,时间复杂度的分析。对数据结构与算法中shell排序算法的实现,附件以python实现。

    shell 排序算法c

    shell排序的c语言算法 很好很强大很高效很教授的算法

    希尔排序(Shell Sort).md

    在B站讲希尔排序的笔记,需要的同学可以免费下载

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

    simotion中的一种算法。simotion是全球最新的运动控制系统

    C语言希尔排序算法代码例程

    希尔排序(Shell Sort)是插入排序的一种,也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。 希尔排序的基本思想是:先将整个待排序的记录序列分割成为若干子序列(由相隔...

    常用算法(python)

    希尔排序(Shell Sort) 归并排序(Merge Sort) 快速排序(Quick Sort) 堆排序(Heap Sort) 计数排序(Counting Sort) 基数排序(Radix Sort) 桶排序(Bucket Sort) 深度优先搜索(Depth-First Search, DFS) ...

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

     void ShellSort(T a[],size_t a_size,size_t dlta[],size_t dlta_size)  {  for(int i=0;i!=dlta_size;++i)  ShellInsert(a,a_size,dlta[i]);  }  int main()  {  int inta[]={7,1,3,4,5,10,2,6,9,8};  ...

    基于PHP的基本排序算法(快速排序、堆排序、基数排序等)

    排序算法 - 快速排序(Insert Sort) - 希尔排序(Shell Sort) - 冒泡排序(Bubble Sort) - 快速排序(Quick Sort) - 选择排序(Selection Sort) - 堆排序(Heap Sort) - 归并排序(Merge Sort) - 箱排序(Bin Sort) - 基数...

    C++实现简单的希尔排序Shell Sort实例

    void ShellSort(int* iArray,int length) { //初始化jump等于length int jump = length; //标记本趟检测是否进行了交换, // 若进行了 则还有下次从头开始的检测, // 否则停止,继续改变jump的值 做另一趟排序...

    java十大排序算法实现

    java十大排序算法实现 1. 冒泡排序(Bubble Sort) 2. 选择排序(Selection Sort) 3. 插入排序(Insertion Sort) 4. 快速排序(Quick Sort) 5. 归并排序(Merge Sort) 6. 堆排序(Heap Sort) 7. 计数排序...

Global site tag (gtag.js) - Google Analytics