iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >java 中基本算法之希尔排序的实例详解
  • 412
分享到

java 中基本算法之希尔排序的实例详解

java希尔排序ava 2023-05-31 09:05:25 412人浏览 薄情痞子
摘要

java 中基本算法之希尔排序的实例详解希尔排序(shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。希尔排序是把记录

java 中基本算法之希尔排序的实例详解

希尔排序(shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。

希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。

基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序, 然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。当增量减到1时,进行直接插入排序后,排序完成。

实例代码:

public class ShellSort {    public static void main(String[] args) {    int a[] = { 49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 5, 4, 62, 99, 98, 54,         56, 17, 18, 23, 34, 15, 35, 25, 53, 51 };    int d = a.length;    int temp = 0;    while (true) {      d = d / 2;      for (int x = 0; x < d; x++) {        //对每一个组进行直接插入排序        for (int i = x + d; i < a.length; i += d) {          int j = i - d;          temp = a[i];          for (; j >= 0 && temp < a[j]; j -= d) {            a[j + d] = a[j];          }          a[j + d] = temp;        }      }      if (d == 1) {        break;      }    }    System.out.println(Arrays.toString(a));  }}

--结束END--

本文标题: java 中基本算法之希尔排序的实例详解

本文链接: https://www.lsjlt.com/news/224579.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java 中基本算法之希尔排序的实例详解
    java 中基本算法之希尔排序的实例详解希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。希尔排序是把记录...
    99+
    2023-05-31
    java 希尔排序 ava
  • JAVA十大排序算法之希尔排序详解
    目录希尔排序代码实现时间复杂度算法稳定性总结希尔排序 一种基于插入排序的快速的排序算法。简单插入排序对于大规模乱序数组很慢,因为元素只能一点一点地从数组的一端移动到另一端。例如,如果...
    99+
    2024-04-02
  • 图解Java排序算法之希尔排序
    目录基本思想代码实现总结希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小...
    99+
    2024-04-02
  • 排序算法图解之Java希尔排序
    目录1.希尔排序简介2.希尔排序算法图解3.希尔排序代码实现1.希尔排序简介 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法,其也是一种特殊的插入排序,即将...
    99+
    2022-11-13
    Java 希尔排序 Java 排序算法 Java 排序
  • 图解排序算法之希尔排序Java实现
    目录一、基本思想二、代码实现三、总结一、基本思想 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整...
    99+
    2024-04-02
  • java 排序算法之希尔算法
    目录插入排序存在的问题简单介绍基本思想代码实现大数据量耗时测试移动法实现希尔排序移动法-大数据量耗时测试算法分析 注:学习本篇的前提是要会插入排序,数据结构与算法——排序算法-插入排...
    99+
    2024-04-02
  • Java 选择排序、插入排序、希尔算法实例详解
           1、基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。...
    99+
    2023-05-31
    java 选择排序 插入排序
  • 分析Java排序算法之希尔排序
    这篇文章主要介绍“分析Java排序算法之希尔排序”,在日常操作中,相信很多人在分析Java排序算法之希尔排序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”分析Java排序算法之希尔排序”的疑惑有所帮助!接下来...
    99+
    2023-06-25
  • 排序算法之希尔排序法解析
    目录什么是希尔排序法希尔排序法与插入排序法之间的区别与联系代码演示对比什么是希尔排序法 希尔排序法(Shell Sort),也称为缩小增量排序,是一种改进的插入排序算法。它通过将待排...
    99+
    2023-08-08
    希尔排序算法 希尔排序法
  • java 数据结构基本算法希尔排序
    C语言数据结构基本算法希尔排序前言:基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序, 然后再用一个较小的增量(d/2)对它进行分组,在每组中再进...
    99+
    2023-05-31
    数据结构 希尔排序 ava
  • Java 十大排序算法之希尔排序刨析
    目录希尔排序原理希尔排序的API设计希尔排序的代码实现希尔排序是插入排序的一种,又称"缩小增量排序”,是插入排序算法的一种更高效的改进版本。 希尔排序原理 1.选定一个增长量h,按照...
    99+
    2024-04-02
  • C++实现希尔排序算法实例
    目录1.代码模板2.算法介绍3.实例1.代码模板 // 希尔排序(Shell Sort) void ShellSort(SqList *L) { int i, j; ...
    99+
    2024-04-02
  • c++实现排序算法之希尔排序方式
    目录排序算法之希尔排序基本思想希尔排序算法复杂度分析关于希尔排序的问题分析排序算法之希尔排序及时间复杂度分析希尔排序时间复杂度排序算法之希尔排序 基本思想 将相距某个“增...
    99+
    2024-04-02
  • Java中插入排序算法之希尔排序+直接插入排序的示例分析
    这篇文章给大家分享的是有关Java中插入排序算法之希尔排序+直接插入排序的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。希尔排序在介绍希尔排序之前,先了解一下直接插入排序一、直接插入排序1. 单趟排序x插...
    99+
    2023-06-25
  • 图解Java经典算法希尔排序的原理与实现
    目录希尔排序算法思想图解代码实现(Java)希尔排序 希尔排序时插入排序的一种,也称缩小增量排序,是直接插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。 算法思想 希尔排序...
    99+
    2024-04-02
  • java 基本算法之归并排序实例代码
    java 基本算法之归并排序实例代码原理:归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,     * 即把待排序序列分为若干个子序列,每个子序列是有序的。 &nb...
    99+
    2023-05-31
    java 归并排序 ava
  • JAVA十大排序算法之基数排序详解
    目录基数排序代码实现时间复杂度算法稳定性基数排序 vs 桶排序 vs 计数排序总结基数排序 常见的数据元素一般是由若干位组成的,比如字符串由若干字符组成,整数由若干位0~9数字组成。...
    99+
    2024-04-02
  • 怎么利用Java实现一个希尔排序算法
    这期内容当中小编将会给大家带来有关怎么利用Java实现一个希尔排序算法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java 实现希尔排序Java代码    pub...
    99+
    2023-05-31
    java ava 希尔排序
  • Go语言数据结构之希尔排序示例详解
    目录希尔排序算法思想图解算法Go 代码实现:总结希尔排序 在插入排序中,在待排序序列的记录个数比较少,而且基本有序,则排序的效率较高。 1959 年,Donald ...
    99+
    2024-04-02
  • C++深入浅出讲解希尔排序算法的实现
    目录希尔排序1.基本思想预排序2.算法实现3.时间复杂度插入排序分为两种:直接插入排序&希尔排序 希尔排序 1.基本思想 希尔排序是在直接插入排序基础上的优化,属于非常牛掰的...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作