排序算法 - 插入(Insertion Sort)
插入排序
插入排序 (Insertion Sort) 是通过将未排序元素插入已排序序列合适位置的排序算法。因排序过程是通过插入的方式实现,所以被称为 插入排序。
1、算法描述
个记录 升序排列:
- 从未被排序的第 1 个元素 开始,数组第 1 个元素认为已被排序;
- 从已排序元素末尾开始向前扫描,依次与 对比;
- 若该元素大于 ,将该元素后移 1 位;
- 重复步骤
3.
,直到已排序元素中大于 的元素都已后移; - 将元素 插入空出来的位置;
- 重复上述步骤。
2、Gif 演示
3、代码实现
- Golang
package sort
func InsertionInt(arr []int, desc bool) []int {
// 开始插入排序:
for i := 1; i < len(arr); i++ {
key := arr[i]
j := i - 1
// 将比 key 大/小的元素往后移一位
for j >= 0 && (!desc && arr[j] > key || desc && arr[j] < key) {
arr[j+1] = arr[j]
j--
}
// 将 key 插入腾出来的空位
arr[j+1] = key
}
return arr
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现