插入排序函数
插入排序函数
程序
/*******************************************************************
*
* file name: 插入排序函数接口
* author : 17647576169@163.com
* date : 2024-5-6
* function : 把无序序列中元素依次插入到有序序列中,一般是从有序序列的尾部开始比较
* note : None
*
* CopyRight (c) 2024 17647576169@163.com All Right Reseverd
*
* *****************************************************************/
void InsertSort(int buf[10], int bufsize)
{
int temp = 0; // 用于备份当前待插入元素的值
int current_prev = 0; // 备份待插入元素的下标
// 1.可以假设把数组中的第一个元素作为有序序列的元素,剩下的元素作为无序序列
for (int i = 1; i < bufsize; ++i)
{
// 2.先备份当前待插入元素的值
temp = buf[i];
// 3.把当前待插入元素和有序序列中的元素依次进行比较,从有序序列尾部开始
for (int j = i - 1; j >= 0; j--)
{
// 当前待插入元素的值 小于 待插入元素的直接前驱的元素的值
if (temp < buf[j])
{
current_prev = j; // 备份当前待插入元素的直接前驱的下标
buf[j + 1] = buf[j]; // 后移
}
else
{
current_prev = j + 1;
break;
}
}
// 4.把待插入元素插入到指定位置
buf[current_prev] = temp;
}
}
验证
int main(int argc, char const *argv[])
{
// 定义一个整型数组存储10个整数
int buf[9] = {14, 23, 12, 5, 8, 3, 9, 10, 33};
int i = 0;
InsertSort(buf, sizeof(buf) / sizeof(buf[0]));
while (buf[i] != '\0')
{
printf("%d,", buf[i]);
i++;
}
printf("\n");
return 0;
}
输出结果
3,5,8,9,10,12,14,23,33,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话