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

喀什建设网站官方网站的作用

喀什建设网站,官方网站的作用,合肥制作网站哪家好,做英文网站用什么源码目录 1. 说明2. 举个例子3. java代码示例4. java示例截图 1. 说明 1.希尔排序是直接插入排序的一种改进,其本质是一种分组插入排序 2.希尔排序采取了分组排序的方式 3.把待排序的数据元素序列按一定间隔进行分组,然后对每个分组进行直接插入排序 4.随着间…

目录

          • 1. 说明
          • 2. 举个例子
          • 3. java代码示例
          • 4. java示例截图

1. 说明
  • 1.希尔排序是直接插入排序的一种改进,其本质是一种分组插入排序
  • 2.希尔排序采取了分组排序的方式
  • 3.把待排序的数据元素序列按一定间隔进行分组,然后对每个分组进行直接插入排序
  • 4.随着间隔的减小,一直到1,从而使整个序列变得有序
  • 5.希尔排序适用于大多数数据元素有序的序列,由于排序期间,同一元素的顺序会经常移动,所以希尔排序不是稳定的排序方法
2. 举个例子
  • 示例: [6, 2, 4, 3, 5, 1]
  • 1.获取数组的长度6
  • 2.计算间隔gap=6/2=3 (将数组分为3组,6和3比较,2和5比较,4和1比较)
  • 3.【6和3比较】拿到索引为0的数6(array[j-gap])与索引为3的数3(temp)进行比较,6>3即array[j-gap] > temp, 6 > 3,将索引为3的数改为6,得到数组[6, 2, 4, 6, 5, 1],j=j-gap=3-3=0,0小于gap跳出while循环
  • 4.将索引为0的数改为3,得到数组[3, 2, 4, 6, 5, 1]
  • 5.【2和5比较】拿到索引为1的数2(array[j-gap])与索引为4的数5(temp)进行比较,2<5则不进行while循环,将索引为4的数改为5(本身就是5,改了不影响), 数组不做改变
  • 6.【4和1比较】拿到索引为2的数4(array[j-gap])与索引为5的数1(temp)进行比较,4>1即array[j-gap] > temp, 4 > 1,将索引为5的数改为4,得到数组[3, 2, 4, 6, 5, 4],j=j-gap=5-3=2,2小于gap跳出while循环
  • 7.将索引为2的数改为1,得到数组[3, 2, 1, 6, 5, 4]
  • 8.计算间隔gap=3/2=1,当间隔为1时,数组中的数字基本有序,再进行插入排序
  • 9.取索引为1的数2,比较索引为0的数3,2小于3,则将索引为1的数改为3,索引为0之前没有数了,得到数组[2, 3, 1, 6, 5, 4]
  • 10.取索引为2的数1,比较索引为1的数3,1小于3,则将索引为2的数改为3,索引为1之前有索引为0的数2,1小于2,则将索引为1的数改为2,索引为0的数改为1 (大数往后挪),得到数组[1, 2, 3, 6, 5, 4]
  • 11.取索引为3的数6,比较索引为2的数3,6大于3,继续
  • 12.取索引为4的数5,比较索引为3的数6,5小于6,则将索引为4的数改为6,索引为3之前有索引为2的数3,5大于3,则将索引为3的数改为5,得到数组[1, 2, 3, 5, 6, 4]
  • 13.取索引为5的数4,比较索引为4的数6,4小于6,则将索引为5的数改为6,索引为4之前有索引为3的数5,4小于5,则将索引为4的数改为5,得到数组[1, 2, 3, 5, 5, 6];索引为3之前有索引为2的数3,4大于3,则将所因为3的数改为4,得到数组[1, 2, 3, 4, 5, 6]
3. java代码示例
package com.learning.algorithm.sort;/*** 希尔排序* 示例: 6, 2, 4, 3, 5, 1* 1.获取数组的长度6* 2.计算间隔gap=6/2=3 (将数组分为3组,6和3比较,2和5比较,4和1比较)* 3.【6和3比较】拿到索引为0的数6(array[j-gap])与索引为3的数3(temp)进行比较,6>3即array[j-gap] > temp, 6 > 3,将索引为3的数改为6,得到数组[6, 2, 4, 6, 5, 1],j=j-gap=3-3=0,0小于gap跳出while循环* 4.将索引为0的数改为3,得到数组[3, 2, 4, 6, 5, 1]* 5.【2和5比较】拿到索引为1的数2(array[j-gap])与索引为4的数5(temp)进行比较,2<5则不进行while循环,将索引为4的数改为5(本身就是5,改了不影响), 数组不做改变* 6.【4和1比较】拿到索引为2的数4(array[j-gap])与索引为5的数1(temp)进行比较,4>1即array[j-gap] > temp, 4 > 1,将索引为5的数改为4,得到数组[3, 2, 4, 6, 5, 4],j=j-gap=5-3=2,2小于gap跳出while循环* 7.将索引为2的数改为1,得到数组[3, 2, 1, 6, 5, 4]* 8.计算间隔gap=3/2=1,当间隔为1时,数组中的数字基本有序,再进行插入排序* 9.取索引为1的数2,比较索引为0的数3,2小于3,则将索引为1的数改为3,索引为0之前没有数了,得到数组[2, 3, 1, 6, 5, 4]* 10.取索引为2的数1,比较索引为1的数3,1小于3,则将索引为2的数改为3,索引为1之前有索引为0的数2,1小于2,则将索引为1的数改为2,索引为0的数改为1 (大数往后挪),得到数组[1, 2, 3, 6, 5, 4]* 11.取索引为3的数6,比较索引为2的数3,6大于3,继续* 12.取索引为4的数5,比较索引为3的数6,5小于6,则将索引为4的数改为6,索引为3之前有索引为2的数3,5大于3,则将索引为3的数改为5,得到数组[1, 2, 3, 5, 6, 4]* 13.取索引为5的数4,比较索引为4的数6,4小于6,则将索引为5的数改为6,索引为4之前有索引为3的数5,4小于5,则将索引为4的数改为5,得到数组[1, 2, 3, 5, 5, 6];索引为3之前有索引为2的数3,4大于3,则将所因为3的数改为4,得到数组[1, 2, 3, 4, 5, 6]*/
public class ShellSort {public static void sort(int[] array) {  int len = array.length;  for (int gap = len / 2; gap > 0; gap /= 2) {  for (int i = gap; i < len; i++) {  int temp = array[i];  int j = i;int index = j - gap;while (j >= gap && array[index] > temp) {array[j] = array[j - gap];j -= gap;index = j - gap;}  array[j] = temp;  }  }  }public static void print(int[] array) {for (int i : array) {System.out.print(i + " ");}}public static void main(String[] args) {int array[] = {6, 2, 4, 3, 5, 1};sort(array);  print(array);}  
}
4. java示例截图

在这里插入图片描述

http://www.yayakq.cn/news/115104/

相关文章:

  • 商城维护工作内容网站建设网站维护收费
  • 网站做线上销售营销策划好的网站
  • 任丘网站建设公司丹阳官方网站建站
  • 长沙网站整站优化高端建站设计
  • 技术支持 网站建设网站建设咨询公司排名
  • 如何分析网站开发语言wordpress注册邮件接收不到
  • 西安网站建设现状新安网站开发
  • 茂名高端模板建站网站搭建平台选哪个
  • 展示型网站模板源码工作室起名大全免费取名
  • 企业宣传网站怎么做5000元做百度推广效果怎么样
  • 蚌埠网站建设专业公司网站开发课程报告心得
  • 可以做免费的网站吗莱芜百姓网
  • 网站短链接怎么做网页版微信怎么登陆
  • 忘了网站链接怎么做网站建设方案模板范文
  • 金耀网站建设阿里云iis放网站
  • 天津网站制作维护东莞规划局官方网站
  • 青岛网站推广优化网站软文制作
  • 网站倒计时怎么做四川省建设厅官方网站信息查询
  • 建立网站的注意事项深圳有哪些大公司
  • 做个网站一年要多少钱横沥仿做网站
  • 信息化建设网站范本网站建设外包服务
  • 公司做自己的网站网站源码建站视频教程
  • 网站后台上传的照片模糊网站建设装什么系统
  • 云南营销型网站建设企业网站推广的方法
  • 企业网站排名提升软件智能优化网站建设服务器维护内容
  • 东莞企石网站建设空间建设网站
  • 网站建立的意义国外做仿牌网站
  • 江西个人网站备案做论坛模板网站新增备案两次都未通过网站也打不开
  • 自适应网站欣赏定制网站设计
  • 服务器怎么放网站吗网站开发与设计实训心得两千字