校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 数据结构 > 希尔排序
题目

希尔排序

解答

思路:

直接插入排序的一种高速的改进版本

1.将待排序数组按照指定的增量进行分割,然后对每个子序列进行直接插入排序(三重循环)

2.缩小增量,重复分割和排序,直到增量为1

3.增量值的选择:

最常用的增量是 第一轮为数组长度的1/2, 后面每轮为原先的1/2直到为1

核心代码
public static void shellSort(int[] arrays) {
 //增量每次都/2 
for (int step = arrays.length / 2; step > 0; step /= 2) { 
//从增量那组开始进行插入排序,直至完毕 

for (int i = step; i < arrays.length; i++) { 

int j = i; int temp = arrays[j];
  // j - step 就是代表与它同组隔壁的元素

 while (j - step >= 0 && arrays[j - step] > temp) {
 arrays[j] = arrays[j - step];
 j = j - step; 


arrays[j] = temp; 
}
 } 
}


C 2条回复 评论
大大大

学习接口测试的朋友可以使用国产的接口测试工具apipost,简单易学是一款很容易上手的接口测试工具

发表于 2021-10-05 23:00:00
0 0
一只小鹿哈

想应聘产品经理岗位,不过还没有拿的出手的经历和作品,只做过一些产品运营的工作,都比较浅,只是入了个门,觉得心很虚。

发表于 2021-09-12 11:40:00
0 0