活动地址: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]
…
今天就学习到这里,下次再见!~
-
相关阅读:
低代码开发之开源数据可视化分析平台datagear
WPF绘图(一):几何(Geometry)与形状(Shape)
【微信小程序】电商移动前端API文档
ZZNUOJ_C语言1027:判断水仙花数(完整代码)
SAP ABAP OBJECTS_NOT_CHARLIKE
C++项目实战——基于多设计模式下的同步&异步日志系统-③-前置知识补充-设计模式
Python实现KNN(K近邻)分类模型(KNeighborsClassifier算法)并应用网格搜索算法寻找最优参数值以及数据标准化均衡化项目实战
ci-cd的流程
linux报错Error: /proc must be mounted
如何解决找不到xinput1_3.dll无法继续执行此代码?5个解决方法分享
-
原文地址:https://blog.csdn.net/happy921212/article/details/126445471