一、優化原理
將查找數組最小值索引的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);
// 執行交換