知识大全 Shell排序
Posted 步长
篇首语:惜时专心苦读是做学问的一个好方法。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Shell排序相关的知识,希望对你有一定的参考价值。
排序算法(Java实现):Shell排序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
希尔排序 也称递减增量排序算法 是插入排序的一种高速而稳定的改进版本
希尔排序是基于插入排序的以下两点性质而提出改进方法的
插入排序在对几乎已经排好序的数据操作时 效率高 即可以达到线性排序的效率但插入排序一般来说是低效的 因为插入排序每次只能将数据移动一位步长的选择是希尔排序的重要部分 只要最终步长为 任何步长序列都可以工作 算法最开始以一定的步长进行排序 然后会继续以一定步长进行排序 最终算法以步长为 进行排序 当步长为 时 算法变为插入排序 这就保证了数据一定会被排序 一直较好的增量序列是 ^k ^(k ) 这样可使Shell排序时间复杂度达到O(N^ ) 为了方便扩展 先引入一个抽象的基础类 view plainpackage andyidea algorithms;
/** * 排序抽象基础类 * @author Andy Chen * * @param <T> */public abstract class Sorter<T extends Comparable<T>>
public abstract void sort(T[] array int from int len);
public final void sort(T[] array) sort(array array length);
protected final void swap(T[] array int from int to) T tmp = array[from]; array[from] = array[to]; array[to] = tmp;
希尔(Shell)排序算法源码如下 view plainpackage andyidea algorithms;
/** * 希尔(Shell)排序算法 * @author Administrator * * @param <T> */public class ShellSort<T extends Comparable<T>> extends Sorter<T>
@Override public void sort(T[] array int from int len) int value = ; while((value+ )* < len) value = (value+ )* ;
for(int delta=value;delta<= ;delta=(delta+ )/ ) for(int i= ;i<delta;i++) invokeInsertionSort(array from len delta);
private final void invokeInsertionSort(T[] array int from int len int delta) if(len<= ) return; T tmp=null; for(int i=from+delta;i<from+len;i+=delta) tmp=array[i]; int j=i; for(;j>from;j =delta) if(pareTo(array[j delta])< ) array[j]=array[j delta]; else break; array[j]=tmp;
cha138/Article/program/Java/hx/201311/26576相关参考
.关键码序列(QHCYQAMSRDFX)要按照关键码值递增的次序进行排序若采用初始步长为的Shell排序法则一趟扫描的结果是_____;若采用以第一个元素为分界元素的快速排序法则扫描一趟的结果是_
建立一个脚本 Linux中有好多中不同的shell但是通常我们使用bash(bourneagainshell)进行shell编程因为bash是免费的并且很容易使用所以在本文中笔者所提供的脚本都是使用
Shell.Application对象使用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 创建S
Java执行Shell&Command 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 主要使用R
启动Java应用的Shell脚本 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 对于Java应用
两个很详细的shell实例一般编程步骤 现在我们来讨论编写一个脚本的一般步骤任何优秀的脚本都应该具有帮助和输入参数并且写一个伪脚本(frameworksh)该脚本包含了大多数脚本都需要的框架结构是一
在Shell中打开ServerSocket 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 工作中
解析php中如何直接执行SHELL 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本篇文章是对php
大部分人在写Shell过滤进程的时候都会使用grep在psaux的输出结果中查找指定的进程但此时也会把grep进程也显示出来比如查找pptpd进程会匹配出来两条 复制代码代码如下: [root@s
防止同一个Java应用重复启动的shell脚本 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 通