当前位置:网站首页>C语言实现-直接插入排序(带图详解)
C语言实现-直接插入排序(带图详解)
2022-08-01 19:38:00 【Demon--hx】
直接插入排序的实现
一、基本思想
像现实中打扑克牌一样,抓牌就是直接插入排序的很好例子,每抓一张牌插入到合适的位置,最后得到一个有序序列。所以直接插入排序的思想就是把待排序的数字逐个插入到已经排好的有序序列里,最后得到一个新的有序序列。
二、实现思路
①先进行单趟排序:使一个有序区间,插入一个数继续有序,使其依然保持有序。
②再排多趟排序:多趟排序后序列越来越接近有序,最后得到有序序列。
三、图形解释过程
四、代码实现
//直接插入排序
void insertsort(int* a, int n)
{
//多趟数排序,最后为一个有序序列
for (int i = 0; i < n - 1; i++)
{
//单趟排序 [0,end]有序,把值end+1的值插入后,依然有序
int end=i;
int tmp = a[end + 1];
while (end >= 0)
{
if (tmp < a[end])
{
a[end + 1] = a[end];
end--;
}
else
break;
}
a[end + 1] = tmp;
}
}
五、直接插入排序性质总结
边栏推荐
猜你喜欢
随机推荐
腾讯云主机安全 x 轻量应用服务器|强强联合主机安全普惠版重磅发布
TestNG multiple xml for automated testing
Greenplum数据库源码分析——Standby Master操作工具分析
Keras deep learning practice - traffic sign recognition
密码学的基础:X.690和对应的BER CER DER编码
升哲科技携全域数字化方案亮相2022全球数字经济大会
1个小时!从零制作一个! AI图片识别WEB应用!
10 个 PHP 代码安全漏洞扫描程序
【蓝桥杯选拔赛真题47】Scratch潜艇游戏 少儿编程scratch蓝桥杯选拔赛真题讲解
【七夕特别篇】七夕已至,让爱闪耀
重保特辑|拦截99%恶意流量,揭秘WAF攻防演练最佳实践
[Server data recovery] Data recovery case of offline multiple disks in mdisk group of server Raid5 array
Become a Contributor in 30 minutes | How to participate in OpenHarmony's open source contributions in multiple ways?
Win11校园网无法连接怎么办?Win11连接不到校园网的解决方法
小白系统初始化配置资源失败怎么办
驱动上下游高效协同,跨境B2B电商平台如何释放LED产业供应链核心价值?
部署zabbix
Database Plus 的云上之旅:SphereEx 正式开源 ShardingSphere on Cloud 解决方案
In the background of the GBase 8c database, what command is used to perform the master-slave switchover operation for the gtm and dn nodes?
为什么限制了Oracle的SGA和PGA,OS仍然会用到SWAP?