五十五、深入插入排序和选择排序

举报
毛利 发表于 2021/07/15 03:14:22 2021/07/15
【摘要】 @Author:Runsen 文章目录 插入排序 选择排序 插入排序 插入排序(英语:Insertion Sort)是一种简单直观的排序算法。 一个有序的数组,我们往里面添加一个新的数据后,如何继续保持数据有序呢?很简单,我们只要遍历数组,找到数据应该插入的位置将其插入即可。 通过构建有序序列,对于未排序数据,在已排序序...

@Author:Runsen

文章目录

插入排序

插入排序(英语:Insertion Sort)是一种简单直观的排序算法。

一个有序的数组,我们往里面添加一个新的数据后,如何继续保持数据有序呢?很简单,我们只要遍历数组,找到数据应该插入的位置将其插入即可。

图片来自王争算法专栏

通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。

因此,代码编写需要判断插入元素和当前元素的大小关系,遍历时需要从数组的第二个数开始。

如果插入元素大于当前元素,则将待插入元素插入到当前元素的后一位。

如果插入元素小于当前元素,则将当前元素后移一位。直到找到一个当前元素小于插入元素。

因此,在for循环遍历时,又有一个while内循环的条件,条件的内容是插入元素的索引减一进行对比。如果插入元素小于当前元素,同时对索引进行减一操作。如果出现了索引等于零的情况,那么表示插入元素等于当前元素。

下面是插入排序的具体P

文章来源: maoli.blog.csdn.net,作者:刘润森!,版权归原作者所有,如需转载,请联系作者。

原文链接:maoli.blog.csdn.net/article/details/110791575

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。