计数排序
来源:互联网 发布:vb教程 编辑:程序博客网 时间:2024/04/29 02:22
计数排序虽然时间复杂度为线性,但是该排序有很多使用限制,请自行百度
#include<iostream>#include<map>#include<vector>#include<cstring>#include<algorithm>using namespace std;class solution{public:solution(vector<int> &vec): //构造函数,传入一个待排序数组 base(vec), n(vec.size()){} void count_sort();int max_num();private:vector<int> &base; //以引用的形式声明base的目的是为了不创建一个副本,直接在原数组上排序int n; //元素个数};int solution::max_num(){ //求出数组的最大值int maxp=base[0];for(auto &e:base) maxp=max(maxp,e);return maxp;}void solution::count_sort(){ const int k=max_num(); map<int,int> cnt; vector<int> ret(n); for(auto e:base) //记录相同元素的个数++cnt[e]; for(int i=1;i<=k;++i)cnt[i]+=cnt[i-1]; //cnt[i]代表i这个值的排位,i有可能不是数组的元素 for(int i=n-1;i>=0;--i) ret[--cnt[base[i]]]=base[i]; //上一个循环的逆操作 base=ret;}
0 0
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- 计数排序
- Bzoj 1054 [HAOI2008]移动玩具
- Scala学习笔记10【对象私有字段、Scala构造器、内部类】
- listview绑定数据并显示ImageList图片
- noip 金明的预算方案
- 【PAT】1100. Mars Numbers (20)
- 计数排序
- C#检测网络状态
- DFS POJ 1011 Sticks
- Linux内核工程导论——网络:IP:隧道
- leecode algo3: Longest Substring Without Repeating Characters (Java)
- XeLeTeX字体警告"EU1/SimSun(0)/m/it' undefined的原因
- Theano入门——MNIST数据库
- superoj732 砝码称重
- Ubuntu无法重启apache2