2025-03-20 17:02:53

📚排序算法的C++实现 🌟计数排序

导读 排序算法是编程中的基础技能之一,而今天要介绍的是一个简单却高效的排序方法——计数排序!它特别适合处理数据范围较小且非负整数的场景。

排序算法是编程中的基础技能之一,而今天要介绍的是一个简单却高效的排序方法——计数排序!它特别适合处理数据范围较小且非负整数的场景。💡

计数排序的核心思想是利用数组下标来记录每个元素出现的次数,然后通过累加的方式确定元素的最终位置。这种方法避免了传统比较排序的复杂度限制(时间复杂度为O(n+k),其中k是数据范围)。✨

以下是计数排序的C++代码实现:

```cpp

include

include

using namespace std;

void countingSort(vector& arr) {

int maxVal = max_element(arr.begin(), arr.end());

vector count(maxVal + 1, 0);

// 统计频率

for (int num : arr) {

count[num]++;

}

// 累加并排序

int index = 0;

for (int i = 0; i <= maxVal; ++i) {

while (count[i] > 0) {

arr[index++] = i;

count[i]--;

}

}

}

int main() {

vector nums = {4, 2, 2, 8, 3, 3, 1};

countingSort(nums);

for (int num : nums) cout << num << " ";

return 0;

}

```

计数排序虽然高效,但也有局限性,比如对负数或大范围数据不太友好。不过,在特定场景下,它无疑是程序员的好帮手!🎉

🌟 小提示:计数排序就像整理书架,只需按顺序摆放即可,轻松又快捷!📚