博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法 之 插入排序 的 JS 实现
阅读量:6519 次
发布时间:2019-06-24

本文共 811 字,大约阅读时间需要 2 分钟。

话不多说,直接上代码

let cards=[1,2,7,8,9,0,6,3,7];let firstCard=cards[0];for(let i=1;i
-1&&cards[j]>currentCard){ cards[j+1]=cards[j]; j--; } cards[j+1]=currentCard;}console.log(cards);

node运行输出结果:

这里写图片描述

对于插入排序的理解,可以想象为打扑克发牌时,玩家边得到牌边对手中牌插入排序的过程。

以上边的程序来讲解:
cards就是一堆牌(cards),玩家被发一张牌(currentCard),玩家手中持有的已排好顺序牌(cards[0-j]),let firstCard=cards[0];相当于玩家得到了第一张牌。for(let i=1;i<cards.length;i++)就像从第二张发牌到牌发完。while(j>-1&&cards[j]>currentCard)就是对手中以排好序的牌从右至左与刚得到的牌进行插入判断的过程。当手中有牌(cards[j])大于刚得到的牌(currentCard)就要将cards[j]往后挪一位cards[j+1]=cards[j];但此时还不应插入,因为插入的条件还需要手中的前一个牌j--;cards[j]小于currentCard,也就不满足cards[j]>currentCard自然弹出了循环,在此时,我们就可以将currentCard插入挪位得到的空位cards[j+1]=currentCard;当手中牌都大于currentCard也就是j>-1不满足的情况,手中所有牌依次向后挪一个位置,currentCard自然插入头的位置。

转载于:https://www.cnblogs.com/dbdb/p/7695050.html

你可能感兴趣的文章
算法试题 及其他知识点
查看>>
php课程---Json格式规范需要注意的小细节
查看>>
hadoop hdfs notes
查看>>
Java反射机制详解(3) -java的反射和代理实现IOC模式 模拟spring
查看>>
开涛spring3(2.3) - IoC的配置使用
查看>>
(2编写网络)自己动手,编写神经网络程序,解决Mnist问题,并网络化部署
查看>>
从实际案例聊聊Java应用的GC优化--转
查看>>
手把手教你实现boost::bind
查看>>
Python中的string模块的学习
查看>>
【转】如何使用分区助手完美迁移系统到SSD固态硬盘?
查看>>
java~lambda表达式让查询更优雅
查看>>
a标签中的javascript:;是什么
查看>>
关于connect: network is unreachable 问题的解决【转】
查看>>
RxSwift源码与模式分析一:基本类
查看>>
.NET MVC5+ Dapper+扩展+微软Unity依赖注入实例
查看>>
INSTALL_FAILED_USER_RESTRICTED
查看>>
使用 https, 并将 WWW 跳转到 NON-WWW
查看>>
Java EE跟JCP说再见
查看>>
分布式团队面临的五大问题及解决办法
查看>>
GitLab 8.7发布
查看>>