Java数据结构与算法《八》希尔排序
来源:互联网 发布:郑也夫被打脸 知乎 编辑:程序博客网 时间:2024/06/05 07:20
希尔排序基于插入排序,添加了一些新的特性,从而大大的提高了插入的执行效率插入排序的缺陷 多次的移动 希尔排序的优点通过加大插入排序中元素的间隔,并对这些间隔的元素进行插入排序,从而使得数据可以大幅度的移动 每当完成该间隔的排序后希尔排序会减少数据的间隔进行排序 依次进行下去保证右边都是大数字间隔的计算间隔h的初始值为1,通过h=3h+1来循环计算 知道间隔大于该数组的大小时停止最大的间隔不大于数组大小的最大值五间隔的为不大于数组的大小的最大值五间隔的减少通过公式h=(h-1)/3来计算
public class ShellSort{ //排序方法 public static void sort(long[] arr){ //初始化一个间隔 int h=1; while(h<arr.length/3){ h=h*3+1; } while(h>0){ long temp=0;//进行插入排序 for(int i=h;i<arr.length;i++){ temp =arr[j]; int j=i; while(j > h - 1 && arr[j - h] >= tmp) { arr[j] = arr[j - h]; j -= h; } arr[j] = tmp; } //减少间隔 h =(h-1)/3; } }}
0 0
- Java数据结构与算法《八》希尔排序
- 数据结构与算法(八)希尔排序
- (数据结构与算法分析 八)------插入排序,希尔排序,归并排序的实现( Java语言描述)
- 【数据结构与算法】希尔排序
- 【数据结构与算法】希尔排序
- java数据结构与算法-高级排序-希尔排序
- 希尔排序实现(ShellSort) Java数据结构与算法
- 数据结构与算法——希尔排序(Java实现)
- 数据结构与算法(9)---Java语言实现:希尔排序
- python数据结构与算法 33 希尔排序
- 算法与数据结构(五)--希尔排序
- 【数据结构与算法设计】希尔排序
- 数据结构与算法简记:希尔排序
- 数据结构与算法三:希尔排序
- 数据结构与算法——希尔排序
- 数据结构与算法——希尔排序
- java数据结构和算法-3,希尔排序
- Java排序算法(八):希尔排序(Shell排序)
- 小白前端之路---关于HTML文档类型的作用
- 第一天!
- Java基础进阶_day16_(多线程,互斥锁,线程池,定时器,设计模式)
- 前端发送的Json数据无法到达后端
- Java基础进阶_day17_(网络编程)
- Java数据结构与算法《八》希尔排序
- 【HTML5学习笔记】3:超链接和路径
- Android开发:android studio启动后,报错:Could not find com.android.tools.build:gradle
- Java基础进阶_day18_(类加载器,反射,动态代理)
- fopen、fwrite使用
- 第二届CCCC赛后感想
- C中的内联汇编学习
- 在 Ubuntu16.04 中为fctix小企鹅增加五笔输入法
- 不见了