排序算法(五):希尔排序
来源:互联网 发布:pageoffice for java 编辑:程序博客网 时间:2024/05/23 23:30
定义:
将一个序列按照一定的“间距”分成几个子序列,把每个子序列进行插入排序,得到一个小数基本在前,大数基本在后的基本有序的序列,然后将“间距”逐渐缩小直到间距为1,最终得到一个有序的序列。
时间复杂度:O(n^3/2)
实现:
public class Shell { public void sort(int[] arr){ int increment=arr.length; do{ increment=increment /3+1; for(int i=increment;i<arr.length;i++){ if(arr[i] < arr[i-increment]){ int tmp=arr[i]; int j; for(j=i-increment;j>=0 && arr[j]>tmp;j=j-increment){ arr[j+increment]=arr[j]; } arr[j+increment]=tmp; } SortUtils.print(arr); } //SortUtils.print(arr); }while(increment >1); } public static void main(String[] args){ int[] arr=SortUtils.getArray(); Shell shell=new Shell(); shell.sort(arr); }}
0 0
- 排序算法(五):希尔排序
- 排序算法(五) 希尔排序
- 排序算法五:希尔排序
- 五、排序算法(选择排序、插入排序、希尔排序)
- 算法与数据结构(五)--希尔排序
- Java排序算法(五)--希尔排序(ShellSort)
- PHP基础排序算法(五)希尔排序
- 排序:希尔排序(算法)
- 数据结构之排序算法(五)-直接插入排序,希尔排序,直接选择排序
- 排序之五:希尔排序(高效)
- 排序算法--希尔排序
- 排序算法-希尔排序
- 排序算法--希尔排序
- 排序算法--希尔排序
- 排序算法---希尔排序
- 排序算法---希尔排序
- 排序算法--希尔排序
- 排序算法--希尔排序
- MySQL触发器数据表同步
- android:如何开启webview的LBS功能
- linux下配置定时执行java脚本的Main方法
- 函数中的数组参数
- Android回调机制
- 排序算法(五):希尔排序
- Qt下使用OpenGL(13)-根据NeHe的教程改写的
- python 获取脚本传递参数 及参数个数 检查文件 变量 是否存在 退出脚本
- jsp+servlet+commons-fileupload-1.3.jar+commons-io-2.4.jar+jstl标签库实现文件上传与下载
- 一个通过GPRS远程升级模块的优化
- Chapter_03 分析C语言的声明
- 集合+单例模式
- Android中常用colors.xml
- 在JNI代码中异步回调Java层方法