活动地址:CSDN21天学习挑战赛 算法专区
钢是在烈火和急剧冷却里锻炼出来的,所以才能坚硬和什么也不怕,我们的一代也是这样的在斗争中和可怕的考验中锻炼出来的,学习了不在生活面前屈服。(作者:奥斯特洛夫斯基)
…
作为一名前端攻城狮,为了成为更好的自己,我参加了这次21天算法打卡。
这是第8天,2022年08月20日,星期六。今天也要加油!
这周工作日实在太忙了,没有时间研究算法,但是打卡不能断,只能周末来打卡学习啦~
**
【21天打卡】前端攻城狮重学算法之--十大排序算法比较
【21天打卡】前端攻城狮重学算法之-顺序查找
**
1,学习目标
今天掌握学习希尔排序
2,学习内容
3,学习时间
第8天,2022.08.20 19:00-21:00
4,学习产出
CSDN技术博客 1 篇
**
**
1,学习知识点
希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因D.L.Shell于1959年提出而得名。该方法的基本思想是:设待排序元素序列有n个元素,首先取一个整数increment(小于n)作为间隔将全部元素分为increment个子序列,所有距离为increment的元素放在同一个子序列中,在每一个子序列中分别实行直接插入排序。然后缩小间隔increment,重复上述子序列划分和排序工作。直到最后取increment=1,将所有元素放在同一个子序列中排序为止。
2,学习遇到的问题
希尔排序还可以再提高一下稳定性。
应用于大规模且无序的数据。
3,学习的收获
希尔排序时间复杂度是
,空间复杂度为常数阶 O(1)。
时间复杂度为
,要好于直接排序的
,需要注意的是增量序列的最后一个增量值必须是另外由于记录跳跃式的移动,希尔排序并不是一种稳定的排序方法。
4,实操
输入数据(input):11,34,20,10,12,35,41,32,43,14
javascirpt源码:
- function shellSort(arr){
- const length = arr.length;
- if(length<=1){
- return arr;
- }
-
- for(let gap = Math.floor(length/2);gap>0;gap = Math.floor(gap/2)){
- for(let i=gap;i
- let j = i;
- let current=arr[i];
- while(j-gap>=0 &¤t
- arr[j]=arr[j-gap];
- j=j-gap;
- }
- arr[j]=current;
- }
-
- }
- return arr;
- }
- console.log(shellSort([11,34,20,10,12,35,41,32,43,14])); //[10, 11, 12, 14, 20, 32, 34, 35, 41, 43]
输出结果:[10, 11, 12, 14, 20, 32, 34, 35, 41, 43]
…
今天就学习到这里,下次再见!~
-
相关阅读:
ChatGLM-6b的微调与推理
Python-Matplotlib 显示中文、中文乱码解决办法
苹果推出iOS15.2正式版,“数字遗产”计划正式上线,你的“继承人”是谁?
计算机专业毕业论文java毕业设计网站SSM教学管理系统[包运行成功]
Mathorcup数学建模竞赛第三届-【妈妈杯】B题:关于三维健康评分模型的研究(附带赛题解析&获奖论文)(一)
HRB系列直流隔离可调电源模块:用20K电位器和200K电位器区别
如何实现前端缓存管理?
第三节:运算符【java】
2022年亚太杯APMCM数学建模大赛C题全球变暖与否全过程文档及程序
C#WPF视频播放器实例
-
原文地址:https://blog.csdn.net/happy921212/article/details/126445471