使用红黑树查找最小n个数,适合处理大数据

来源:互联网 发布:开淘宝店支付宝认证 编辑:程序博客网 时间:2024/05/21 10:44

使用STL容器 multiset

代码:

#include <iostream>#include <vector>#include <set>using namespace std;typedef multiset<int,greater<int> > intSet;typedef multiset<int,greater<int> >::iterator intIter;void findMaxNum(const vector<int> &data,int k){intSet Max; Max.clear();if(k < 1 || data.size() < k)    return ;vector<int>::const_iterator iter = data.begin();for(;iter != data.end();++iter){if(Max.size() < k){Max.insert(*iter);}else{intIter least=Max.begin();if((*iter) < *( Max.begin())){ //只能是begin()删除Max.erase(least);Max.insert(*iter);}}}for( intIter it = Max.begin(); it != Max.end();it ++){cout<<*it << "  ";}}int main(){vector<int> data;for(int i=0;i<1000;i++){data.push_back(i);}findMaxNum(data,10);    return 0;}

运行结果:


1 0
原创粉丝点击