栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言100题练习计划—— 插入排序怎么写?

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言100题练习计划—— 插入排序怎么写?

C语言100题练习计划——插入排序怎么写?

古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。——苏轼

本篇内容简介:一、排序算法-->二、问题呈现-->三、源码实现-->四、输出结果展示-->五、插入排序gif动画-->六、流程分析

磊C语言100题练习专栏计划:目的:巩固练习C语言,增强上机、动手实践能力,交流学习!前期尽量每天更新一题,之后题量随时间的增加会有所增加。当然,内容也会不断地打磨优化。

C Programming Language

C语言100题练习计划——插入排序怎么写?

一、插入排序算法

1. 基本思想2. 优缺点3.算法具体步骤 二、问题呈现三、源码实现(+注释)四、输出结果展示

1.输出结果:2.输出结果(图示版): 五、插入排序gif动画:六、流程分析

1.读题2.构思3.编程

一、插入排序算法

插入排序(Insertion sort)的介绍:

1. 基本思想

将元素逐个添加到已经排序好的数组中去,同时要求,插入的元素必须在正确的位置,这样原来排序好的数组是仍然有序的。

2. 优缺点

优点:稳定,比较次数已知;缺点:慢,每次只能移动相邻两个数,移动次数多。 3.算法具体步骤

通常是排序整个无序数组,所以把这个无序数组分为两部分排序好的子数组和待插入的元素。第一轮时,将第一个元素作为排序好的子数组,插入第二个元素;第二轮,将前两个元素作为排序好的数组,插入第三个元素。以此类推,第i轮排序时,在前i个元素的子数组中插入第i+1个元素。直到所有元素都加入排序好数组。

二、问题呈现

Problem Description

给定数组元素为:3,44,38,5,47,15,36,26,27,2,46,4,19,50,48。使用插入排序对其进行降序排序。

Input

Output

数组元素降序排序后的结果

Sample Input

Sample Output

50 48 47 46 44 38 36 27 26 19 15 5 4 3 2
三、源码实现(+注释)
#include 
//插入排序函数
void Insertion_sort(int a[], int len){
        int i,j,key;
        //进行len-1轮插入排序过程
        for (i=1;i=0) && (a[j] 

while((j>=0) && (a[j] key就可以了。


四、输出结果展示 1.输出结果:
50 48 47 46 44 38 36 27 26 19 15 5 4 3 2
--------------------------------
Process exited after 0.3114 seconds with return value 0
请按任意键继续. . .
2.输出结果(图示版):


五、插入排序gif动画:

六、流程分析 1.读题

给定数组元素为:3,44,38,5,47,15,36,26,27,2,46,4,19,50,48。使用插入排序对其进行降序排序。关键点 ①给定元素内容 ②插入排序 ③降序排序

2.构思

根据第一个关键点给定元素内容,可以先定义一个整数类型的数组对其进行存储,方便后续使用循环对其进行操作。
第二个关键点就是插入排序,使用插入排序,思想就是将元素逐个添加到已经排序好的数组中去,同时要求,插入的元素必须在正确的位置,这样原来排序好的数组是仍然有序的。 理解其思想后,插入排序就很好实现了。
第三个关键点降序排序,那就是让数值大的放前边,数值小的放后边, 插入排序通常是排序整个无序数组,所以把这个无序数组分为两部分排序好的子数组和待插入的元素,所以降序排序借助循环排序的话,需要两个条件同时成立,(j>=0) && (a[j] 解决了这些,可以实现了。

3.编程

把你所思所想,以代码的形式,写出来。

ps:这道题的方法,本文虽然只写出这一种,但是思路方法其实不止这一种,其它的方法可自行尝试一下。


作者:Code_流苏(一个喜欢古诗词和编程的Coder)

★喜欢的话,还请多多点赞与关注! 感谢支持!
C语言100题练习专栏计划持续进行,欢迎评论交流学习!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/702203.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号