数据结构之插入排序
插入排序是很常见的排序方式,通常我们使用的插入排序有下面几种:
1、直接插入排序
算法思想:第 i 趟插入排序为:在含有i-1个元素的有序子序列中插入一个元素,使其成为含有i个元素的有序子序列。在查找插入位置的过程中,可以同时后移元素。整个过程进行n-1趟插入,即先将整个序列的第1个元素看成是有序的,然后从第2个元素起逐个进行插入,直至整个序列有序。
1 void directInsertSort(int Arr[], int n) 2 { 3 int i, j, temp; 4 for (i = 1; i<n-1; i++) 5 { 6 if(Arr[i] < Arr[i-1]) 7 { 8 j = i - 1; 9 temp = A[i]; 10 while(j >= 0 && temp < Arr[j]) 11 { 12 Arr[j+1] = Arr[j]; 13 j--; 14 } 15 Arr[j+1] = temp; 16 } 17 } 18 }
2、折半插入排序
算法思想:插入思想同直接插入排序,但寻找查找位置使用折半查找法。
1 void BinInsertSort(int Arr[], int n) 2 { 3 int i, j, low, high, mid, temp; 4 for(i = 1; i <= n-1; i++) 5 { 6 temp = Arr[i]; 7 low = 0; 8 high = i - 1; 9 while(low <= high) 10 { 11 mid = (low + high)/2; 12 if(temp > Arr[mid]) 13 low = mid - 1; 14 else 15 high = low + 1; 16 } 17 for(j = 1; j > low; j--) 18 Arr[j] = Arr[j-1]; 19 } 20 }
本文来自博客园,作者:Arthurian,转载请注明原文链接:https://www.cnblogs.com/Arthurian/p/6208596.html
欢迎邮件交流:zhuanxinxin@aliyun.com
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)