void search(int a[], int len) {
int sp[1000] = {0};
for (int i = 0; i < len; i++) {
int index = a[i] - 1;
sp[index]++; // 核心語句
}
}
index = a[i] - 1:將數組元素值映射為 0 基索引(假設 a[i] 範圍 1~1000)。sp[index]:訪問統計數組對應位置的計數器。++:將該計數器加 1(後置遞增,此處等同前置)。統計數組 a 中每個值(1~1000)出現的次數,結果存儲於 sp,即計數排序的核心步驟。
a[i] 在 1~1000 範圍內,否則越界。sp 初始化為 0 保證計數準確。