活动地址: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]
…
今天就学习到这里,下次再见!~
-
相关阅读:
Unity优化(1)——合并Mesh
Spring概述
【第4天】SQL快速入门-多表查询(SQL 小虚竹)
代码随想录Day45 动态规划13 LeetCode T1143最长公共子序列 T1135 不相交的线 T53最大子数组和
kubectl 声明式资源管理方式
python读写excel文件
基于Java ME的俄罗斯方块游戏免费LW+源代码
水果店圈子:水果的朋友文案怎么写,开水果店高级文案怎么写
无线渗透-WPA攻击
残差网络——day54 Res2Net_A_New_Multi-Scale_Backbone_Architecture
-
原文地址:https://blog.csdn.net/happy921212/article/details/126445471