插入排序算法的SIMD优化
一 概述
插入排序是稳定的原地排序算法,核心思想是逐步构建有序序列。对于未排序部分的每个元素,在已排序序列中从后向前扫描,找到合适位置插入。
二 SIMD
1 SIMD定义
通过单条指令同时处理多个数据元素(如同时计算4个float的加法)。
2 指令集支持
SSE 系列:SSE/SSE2/SSE3/SSE4(128位寄存器)。
AVX 系列:AVX/AVX2(256位寄存器)。 AVX-512(512位寄存器)。
三 原理
使用数组右移一位的SIMD算法来优化插入排序算法。具体参看https://blog.csdn.net/kupe87826/article/details/146249631
四 代码
#include <immintrin.h>
void rotate_right_simd(int* arr, int n) {
if (n < 2) return;