使用memmove优化插入排序
一 核心思路
传统插入排序通过循环逐位移动元素完成插入,而memcpy/memmove优化利用内存操作函数批量移动连续内存,减少循环开销。
需注意, 必须使用memmove(而非memcpy)处理内存重叠区域。优化点在于批量移动元素而非逐个移动。
二 优化步骤演示(数组索引从0开始)
以数组 [6,4,7,8, 2] 为例来演示优化步骤。
1 处理第1个元素(i=1,值4)
1)查找插入位置:4 < 6 → 插入位置pos=0。
2 )批量移动:将arr[0..0](元素6)后移1位。
3)插入:arr[0] = 4。
目标位置: [6 → 后移1位]
结果: [4, 6, 7, 8, 2]
2 处理第2个元素(i=2,值7)
1)无需移动:7 > 6 → 直接保留原位。
3 处理第3个元素(i=3,值8)
1)无需移动:8 > 7 → 直接保留原位。<