当前位置:网站首页>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;
}
}五、直接插入排序性质总结
边栏推荐
- What are the application advantages of SaaS management system?How to efficiently improve the digital and intelligent development level of food manufacturing industry?
- 力扣刷题之合并两个有序数组
- 驱动上下游高效协同,跨境B2B电商平台如何释放LED产业供应链核心价值?
- 有点奇怪!访问目的网址,主机能容器却不行
- 即时通讯开发移动端弱网络优化方法总结
- 哈哈!一个 print 函数,还挺会玩啊!
- regular expression
- PROE/Croe如何编辑已完成的草图,让其再次进入草绘状态
- 为什么限制了Oracle的SGA和PGA,OS仍然会用到SWAP?
- [Server data recovery] Data recovery case of offline multiple disks in mdisk group of server Raid5 array
猜你喜欢
随机推荐
短视频软件开发,Android开发,使用Kotlin实现WebView
第55章 业务逻辑之订单、支付实体定义
GEE(8):使用MODIS填补由去云后的Landsat影像计算得到的NDVI数据
Win11如何开启剪贴板自动复制?Win11开启剪贴板自动复制的方法
安装GBase 8c数据库的时候,报错显示“Resource:gbase8c already in use”,这怎么处理呢?
选择合适的 DevOps 工具,从理解 DevOps 开始
不要再使用MySQL online DDL了
Library website construction source code sharing
nacos installation and configuration
有序双向链表的实现。
openresty 动态黑白名单
How PROE/Croe edits a completed sketch and brings it back to sketching state
cf:D. Magical Array【数学直觉 + 前缀和的和】
58:第五章:开发admin管理服务:11:开发【管理员人脸登录,接口】;(未实测)(使用了阿里AI人脸识别)(演示了,使用RestTemplate实现接口调用接口;)
modbus总线模块DAM-8082
Mobile Zero of Likou Brush Questions
Greenplum Database Source Code Analysis - Analysis of Standby Master Operation Tools
终于有人把AB实验讲明白了
How to query database configuration parameters in GBase 8c, such as datestyle.What function or syntax to use?
在GBase 8c数据库后台,使用什么样的命令来对gtm、dn节点进行主备切换的操作?









