package sort;
//=================================================
// File Name       :    ShellSort
//------------------------------------------------------------------------------
// Author          :    Commonimport java.util.Arrays;//类名:Arrays_Shell
//属性:
//方法:
class Arrays_Shell{private int[] arrays;private int curNum;public Arrays_Shell(int max) {           //建立一个max长度的空数组super();arrays = new int[max];curNum = 0;}public void insert(int value){                   //往空的数组里面增加元素arrays[curNum] = value;curNum++;}public void display(){                                 //显示数组System.out.println(Arrays.toString(arrays));}public void ShellSort(){int out,in;int temp;int h = 1;while(h <= curNum/3)  //求出最大的增量,5刚开始的增量为4h = h*3+1;                      //1,4,13,40,121,....while(h>0){for(out=h;out<curNum;out++){//out从1开始递增,把out前的数两两排序temp = arrays[out];in = out;while(in>h-1 && arrays[in-h] >= temp){//刚开始in是比较0和h的大小arrays[in] = arrays[in-h];in -= h;}arrays[in] = temp;//display();}h = (h-1)/3;}}}//主类
//Function        :     ShellSort
public class ShellSort {public static void main(String[] args) {// TODO 自动生成的方法存根int maxSize = 100;Arrays_Shell arrays_demo = new Arrays_Shell(maxSize);arrays_demo.insert(58);arrays_demo.insert(57);arrays_demo.insert(56);arrays_demo.insert(60);arrays_demo.insert(59);arrays_demo.display();arrays_demo.ShellSort();arrays_demo.display();}}

Java排序算法——希尔排序相关推荐

  1. 经典排序算法 - 希尔排序Shell sort

    经典排序算法 - 希尔排序Shell sort 希尔排序Shell Sort是基于插入排序的一种改进,同样分成两部分, 第一部分,希尔排序介绍 第二部分,如何选取关键字,选取关键字是希尔排序的关键 第 ...

  2. python排序算法——希尔排序(附代码)

    python排序算法--希尔排序 文章目录 python排序算法--希尔排序 一.前言 二.算法描述 三.代码实现 总结 一.前言 相关知识来自<python算法设计与分析>.初级排序算法 ...

  3. 十大经典排序算法-希尔排序算法详解

    十大经典排序算法 十大经典排序算法-冒泡排序算法详解 十大经典排序算法-选择排序算法详解 十大经典排序算法-插入排序算法详解 十大经典排序算法-希尔排序算法详解 十大经典排序算法-快速排序算法详解 十 ...

  4. 排序算法——希尔排序的图解、代码实现以及时间复杂度分析

    希尔排序(Shellsort) 希尔排序是冲破二次时间屏障的第一批算法之一. 希尔排序通过比较相距一定间隔的元素来工作:各躺比较所用的距离随着算法的进行而减小,直到只比较相邻元素的最后一趟排序为止.由 ...

  5. 排序算法---希尔排序(java版)

    希尔排序 原理 先将待排序表分割成若干相隔某个"增量"的记录组成一个子表,对各个子表分别进行直接插入,当整个表中的元素已成基本有序是,再对全体记录进行一次直接插入排序.希尔排序主要 ...

  6. 希尔排序是一种稳定的排序算法_十大经典排序算法——希尔排序

    vs code ppt c++/java 目录 1.1.排序分类 1.2.排序的定义: 对一序列对象根据某个关键字进行排序. 1.3.术语说明 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的 ...

  7. 希尔排序是一种稳定的排序算法_排序算法—希尔排序

    希尔排序 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法.希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n ...

  8. 排序算法——希尔排序

    希尔排序是1959 年由D.L.Shell提出来的,相对直接排序有较大的改进.希尔排序又叫缩小增量排序 基本思想 先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录&q ...

  9. 排序算法——希尔排序(缩小增量排序)

    1.希尔排序思想: 希尔排序就是把数据分成若干份子序列,从第一个元素开始,和每间隔为n的元素分成一个子序列,对每一份子序列实行直接插入排序,然后合并成一个新序列,继续对新序列以间隔m分成若干份,继续重 ...

  10. ds排序--希尔排序_排序算法 - 希尔排序分析及优化

    希尔排序 1 算法思想 希尔排序,也被称为递减增量排序,是简单插入排序的一种改进版本. 在插入排序中,如果待排序列中的某个元素,距离有序数列中待插入位置非常远,就需要比较很多次才可以到达插入位置,这是 ...

最新文章

  1. Linux--内存结构
  2. 【Rsyslog】 从json 中通过正则 key 获取 value值,rsyslog正则匹配获取key 的 value值
  3. C++ vector容器中常见的三种遍历方式
  4. 获取mysql存储过程返回值_MySQL函数,存储过程,用户管理
  5. C语言判断素数的几种方法
  6. PC端输入法双拼皮肤分享
  7. 中国能源统计年鉴面板数据-分省市主要污染物排放指标(包含ECXEL2020年中国统计年鉴)
  8. pmp 第六版 模拟卷3疑难问题
  9. 苹果cmsv10资源采集插件+一键添加到本地
  10. webmax官方动态
  11. 关于LinkList和LNode*
  12. 第73课内幕资料详细版 Spark SQL Thrift Server 实战 每天晚上20:00YY频道现场授课频道68917580
  13. 【渝粤题库】陕西师范大学200031 中国现代文学 作业
  14. Untitled-0720记录一次机器学习完整项目
  15. Pygame——AI重力四子棋
  16. html视频自动播放播放器,支持弹字幕HTML5视频播放器DPlayer
  17. 神经网络与深度学习三:编写单隐层神经网络
  18. [BZOJ1975]HH去散步 图论+矩阵
  19. Leetcode力扣 VS Code插件——面向新手
  20. base64编码,原理是什么,有什么作用?

热门文章

  1. 破解网页禁止使用“复制”、“粘贴“
  2. SSL ×××与IPSec ×××特点比较
  3. 论网络营销在我国的发展
  4. php trace 函数,PHP Trace 实现原理
  5. Python 哪种方式循环最快,或许颠覆你的认知
  6. class反编译成java_Spring Tools Suite(STS)安装反编译插件
  7. eclipse字体大小设置_Java 设置Excel单元格格式—基于Spire.Cloud.SDK for Java
  8. android开发重要控件,Android界面编程——Android基本控件
  9. LibreOffice 支持无障碍辅助的 5 种方式
  10. ASP.NET Razor – C# 变量简介