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. golang int64转string_Golang 并发数据冲突检测器与并发安全
  2. UVA10003 切木棍 Cutting Sticks(区间DP、细节)
  3. python 数据分析学什么-python数据分析哪些课程好?
  4. 2021 ICPC 江西省大学生程序设计竞赛(热身赛)【完结】
  5. php json解析教程,php解析json
  6. H5 C3中的概念(一)
  7. SQL Server有这些属性吗
  8. linux那些事之LRU(1)
  9. android动态申请悬浮框权限,Android创建悬浮窗的完整步骤
  10. 用Python搭建“冲顶大会”外挂,王思聪们还舍得撒币吗?
  11. 搜索引擎Elasticsearch,这篇文章给讲透了(建议收藏)
  12. 查询数据总数_Web | Django 与数据库交互,你需要知道的 9 个技巧
  13. 脉歌蓝牙耳机线评测_感受蓝牙5.0带来的震撼——脉歌T1000Pro蓝牙耳机轻体验
  14. 淘宝双11大数据分析(数据可视化)
  15. Windows日常效率生产力开发环境工具个人集合
  16. MetaTrader 4 电脑版安装指南
  17. 凸包 Codeforces605C Freelancer's Dreams
  18. Go语言核心:Go的基本结构
  19. 果数据库被锁了,查询并杀死对应的进程
  20. 记第一次生产项目中Flutter接入原生项目遇到的问题

热门文章

  1. ASP.NET(C#)常用代码30例
  2. mysql installer图解_MySQL Installer GUI - 图解
  3. mysql json类型数组索引_MySQL JSON 类型数据操作
  4. 爬取知乎“凡尔赛语录”话题下的所有回答,我知道点开看你的很帅气,但还是没我帅
  5. LINUX系统中进程如何管理控制(一)
  6. 简单介绍C++中常量与指针
  7. c语言统计输入文本不同字母单词数,【C语言统计不同单词个数编写一个程序,输入一个句子,然后统计-查字典问答网...
  8. HDU3440(差分约束+SPFA算法)
  9. java哈希表单例使用_java 、HashMap 和单例
  10. AtCoder Beginner Contest 197 题解(A ~ F)