第 24 题:如何理解希尔排序?
2021/8/19 8:06:20
本文主要是介绍第 24 题:如何理解希尔排序?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
我刚开始看这个的时候,一脸懵逼。后面又多看了几篇其他人的文章后才理解了
在了解这个希尔排序之前,我想先进行一个小游戏,大家应该都有玩过。希尔排序原理和这个小游戏差不多
小明(玩家)、安琪拉(出题者)
安琪拉:请你在 0~100 之间,猜一个数,猜的次数越少分数越高
正常玩家,可能会依次从 0 开始一个个去猜,0, 1, 2, 3 … 这样一直下去猜,运气不好可能要猜 99 次才能正确(这个就是插入排序)
希尔排序是插入排序的升级版,主要目的是减少猜的次数
小明最后利用了/2 的方法进行猜数(这个就是希尔排序)
---------------------------------------------------
答题开始
小明:猜数字是 50
安琪拉:提示数字猜小了
小明:那么范围肯定在(50~100)之间了,这次猜是 75
安琪拉:提示数字猜小了
小明:那么范围肯定在(75~100)之间了,这次猜 87
安琪拉:提示数字猜小了
小明:那么范围肯定在(87~100)之间了,这次猜 93
安琪拉:提示数字猜大了
小明:那么范围肯定在(87~93)之间了,这次猜 90
安琪拉:提示数字猜大了
小明:那么范围肯定在(87~90)之间了,这次猜 89
安琪拉:提示数字猜大了
小明:那么范围肯定在(87~89)之间了,剩下 3 个数了,那么就可以进行一个个去猜了(插入排序)87, 88, 89
安琪拉:答案是 88
---------------------------------------------------
现在开始进入正题
什么是希尔排序?
希尔排序就是在一个序列中进行分组(简称:增量),然后对每个分组分别进行插入排序。随着增量逐渐减少,每组包含的关键词越来越多,当增量减至 1 时,整个序列恰好被分成一组,算法便终止
算法描述
这篇关于第 24 题:如何理解希尔排序?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南
- 2024-09-30Dnd-Kit学习:新手快速入门指南