排序算法——计数排序

xiaoxiao2021-02-28  94

前言

计数排序的思想:在给定的数组中,依次寻找比当前数字小的元素的个数(count),统计之后直接使用t就可以定位到该数所在的位置,因为比它小的元素的个数已经通过count计算出来了,所以直接填充就可以了。

1. 编码

//display template<typename T> struct Disp { void operator()(T value) { cout << value << "\t"; } }; void CountSort(std::vector<int> vec) { int len(vec.size()); if(len == 0) return; cout << "display origin array:" << endl; for_each(vec.begin(), vec.end(), Disp<int>()); //打印原始的数据 std::vector<int> vec1(len, 0); bool flag[len] = {false}; for(int i=0; i<len; ++i) { int m_count = 0; for(int j=0; j<len; ++j) { if(vec[j]<vec[i] && !flag[j]) { ++m_count; } } vec1[m_count] = vec[i]; flag[i] = true; } cout << "\narray sorted:" << endl; for_each(vec1.begin(), vec1.end(), Disp<int>()); }

转载请注明原文地址: https://www.6miu.com/read-55907.html

最新回复(0)