首页 > 综合 > 网络互联问答 >

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

发布时间:2025-03-20 17:02:53来源:

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

计数排序的核心思想是利用数组下标来记录每个元素出现的次数,然后通过累加的方式确定元素的最终位置。这种方法避免了传统比较排序的复杂度限制(时间复杂度为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;

}

```

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

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

免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。