当前位置: 首页 > news >正文

顺义广州网站建设写一篇软文推广自己的学校

顺义广州网站建设,写一篇软文推广自己的学校,女人做绿叶网站相亲拉人,塑胶东莞网站建设技术支持文章目录 1. 概念2. 思路3. 代码实现 1. 概念 希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序。希尔排序在数组中采用跳跃式分组的策略,通过某个增量将数组元素划分为若干组,然后分…

文章目录

    • 1. 概念
    • 2. 思路
    • 3. 代码实现

1. 概念

希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序。希尔排序在数组中采用跳跃式分组的策略,通过某个增量将数组元素划分为若干组,然后分组进行插入排序,随后逐步缩小增量,继续按组进行插入排序操作,直至增量为1。

推荐一个B站六分钟的视频,PPT动画做的非常好,清晰明了。

在这里插入图片描述

2. 思路

① 希尔排序采用跳跃式的分组方式,什么是跳跃式?也就是说同一组内的成员在原序列中实际上是互相隔着一段距离的,它们被迫抽出来组成一队,内部采用插入排序比较大小。它们互相隔着的距离是相等的,这个距离我们称它为增量,增量怎么确定?一般来说,初始增量值为序列长度的一半,接下来我们根据增量值计算分组,如下图增量为5,所以索引0跟索引5一组,索引1跟索引6一组 …,以此类推,序列被分成了五组;

在这里插入图片描述
② 分了组之后,组员内部要进行插入排序的,但是这里的插入排序步长其实并不是1,我们知道原本的插入排序是从右往左一步一步地比较大小并插入的,但是希尔排序是跳跃式分组的,虽然说你们被分到了同一个队伍里,但是不要忘记了,你们本身的索引并不相连,索引还是原来位置的索引,所以,在这里插入排序的时候,每一步的长度应该是增量的大小,除了步长不一样外,其它思路都不变;

③ 在第一轮排序完成之后,发现整体上序列的顺序有了一个大体的趋势,小的基本在左边,大的基本在右边,但这才是第一步还不算排好序;

④ 再开始下一轮排序,每一轮开始时的增量值都应是上一轮增量值的一半。原理还不变,外部分组,内部插入排序,什么时候不再分组,不再排序?增量值一直减半,总有一天它会减为1,到1的时候就是全体序列进行最基本的插入排序了,没错这是最后一步,所以终止条件就是增量值开始小于1,这时候的序列已经完全有序。

3. 代码实现

import java.util.Arrays;public class Test {public static void main(String[] args) {int[] arr = {2, 9, 3, 11, 7, 8, 4, 1, 6};int[] newArr = sort(arr);System.out.println(Arrays.toString(newArr));}public static int[] sort(int[] arr) {//控制增量值,初始值为序列长度的一半,每次减半,步长为0时停止for (int step = arr.length / 2; step > 0; step /= 2) {//控制待插入元素的位置,初始值为增量值for (int i = step; i < arr.length; i++) {//待插入元素int insertVal = arr[i];//待比较元素初始位置int index = i - step;//控制待比较元素的位置,初始值为待插入元素的位置减去增量值,即indexwhile (index >= 0 && insertVal < arr[index]) {//当前待比较元素向后移一位,这里的一位就是step长度arr[index + step] = arr[index];//指针向左挪动一位,继续跟下一个元素作比较index -= step;}//退出循环后后,将待插入元素插入到index的下一位arr[index + step] = insertVal;}}return arr;}
}

在这里插入图片描述

http://www.fp688.cn/news/985.html

相关文章:

  • 个人网站开发实例高报师培训机构排名
  • 网站建设与管理读后感网站收录批量查询
  • 专业网站建设服务报价seo全称英文怎么说
  • 网站开发要山东建站
  • 网站颜色搭配案例seo优化行业
  • 我的专业网站建设策划书新app推广方案
  • wordpress 网站生成app百度推广产品
  • 政府网站建设 强化考评问责网络策划书范文
  • 网站建设主管招聘河南网站设计
  • 模板做图 网站有哪些谷歌搜索官网
  • 企业网站建设步骤是什么学计算机哪个培训机构好
  • 广州市平安建设 网站百度seo点击器
  • 网站改版完成企业网站页面设计
  • 宣传册设计与制作软件优化大师使用方法
  • 小白怎么做网站搬家教程怎么建立信息网站平台
  • seo搜索培训seo网站推广费用
  • 网站建设几种语言对比国家高新技术企业
  • 建设银官方网站雅思培训班价格一览表
  • 手机网站视频播放模板网络推广公司哪家好
  • 唐山房地产网站建设惠州企业网站建设
  • 中小企业公共服务平台网站建设怎么制作一个网站5个网页
  • 资源交易网站代码如何网络推广自己的产品
  • 龙岗附近做网站公司关键词搜索次数查询
  • 上海市建设机械行业协会网站360seo
  • 金华职院优质校建设网站推广赚钱一个2元
  • 有一个做ppt的网站小程序seo推广技巧
  • 美食电子商务网站建设策划书营销网址
  • 南阳企业做网站windows优化大师有必要安装吗
  • 邦泽网站建设宁波seo快速优化平台
  • 丝网外贸做哪些网站免费搭建自己的网站