数据结构之插入排序

举报
chenyu 发表于 2021/07/27 01:13:18 2021/07/27
【摘要】 1 插入排序 在要排序的一组数中,假定前n-1个数已经排好序,现在将第n个数插到前面的有序数列中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序           2 我的分析 如果有N个数,我们需要大循环N - 1次,然后我们从第二个元素开始找起,当发现比前面的元素小的时候,我们就...

1 插入排序

在要排序的一组数中,假定前n-1个数已经排好序,现在将第n个数插到前面的有序数列中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序

 

 

 

 

 

2 我的分析

如果有N个数,我们需要大循环N - 1次,然后我们从第二个元素开始找起,当发现比前面的元素小的时候,我们就当前的元素往后面移动一下(前提是在我们排好序列的数组里面),如上图,当i=3的时候,我们发现17(第一个元素)比13小,然后我们把17以及后面的元素20和42进行往后面移动一下,然后再把13插入到第一个位置就可以。

 

 

 

 

 

 

3 代码实现


  
  1. #include <stdio.h>
  2. void print(int* data, int len)
  3. {
  4. for (int i = 0; i < len; i++)
  5. printf("%d\t", data[i]);
  6. printf("\n");
  7. }
  8. v

文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/102889833

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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