深入浅出生活化例子讲解插入排序

什么是插入排序呢?

不如我们先想想在玩一个扑克牌游戏,你的目标是要凑出一套顺子,但现在你不知道这能抽到哪些牌。在发牌过程结束后,你发现手里有很多红桃的牌,似乎可以构成一副顺子。假设你在发牌时依次抽到了红桃6,红桃5,红桃4,红桃7,红桃8,你该如何构造出一副顺子呢?

首先,你要在心里告诉自己,我现在想构造一副红桃的顺子。我们总要从头开始一张一张的完善这个序列吧。那么我们第一张牌该选谁呢?

按照发牌的顺序,我们发现第一张起到的是红桃6,我们就想干脆就拿它当第一张好了,因此这个序列的第一个元素就是红桃6。

接着当你想继续构造一个红桃有序序列,你就要考虑这个红桃是红桃几了,是比红桃6大还是比红桃6小呢?如果我们现在起到了红桃5,那么我们希望它是在6的前面的,这样才是有序的,因此我们交换5和6的位置,把6往后移动一位,把5放到原来6的位置。

接着我们又发现自己还有一张红桃4,那么我们该如何判断4这张牌应该放在哪个位置呢,我们肯定会拿现在手里的四倒着和它前面的牌进行比较,如果比前面的牌小就交换位置,既然前面的牌已经是有序的了,因此,我们只要在不断的比较中找到四应该放在哪里就好。每一次发现未加入到有序序列(也就是顺子)的牌我们都需要重新考虑把它插入到哪个位置才能使序列有序,这就是插入排序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值