选择排序算法的SIMD优化
一、优化原理
将查找数组最小值索引的SIMD优化的函数嵌入选择排序主循环,优化最耗时的最小值查找环节,同时保留选择排序的交换逻辑。
二、关键改造步骤
1)最小值查找模块化
复用SIMD优化的 find_min_index_simd函数。
2)动态子数组处理
每次循环处理 arr[i..n-1] 子数组。
3) 边界条件处理
自动切换标量模式处理尾部数据。
三 数组最小值查找的SIMD优化函数
参看https://blog.csdn.net/kupe87826/article/details/146075314
四、主程序代码
void selection_sort_simd(int* arr, size_t n) {
for (size_t i = 0; i < n - 1; ++i) {
// 查找子数组最小值偏移量
int offset = find_min_index_simd(arr + i, n - i);
// 执行交换