利用sort排序
来源:互联网 发布:淘宝权重怎么查 编辑:程序博客网 时间:2024/05/21 15:38
京东笔试题:
说是一批订单,包含名字和价格,让实现一个函数按照价格排序
struct Items{string name;int price;};bool com(Items a, Items b){return a.price < b.price;}int main(){Items val;vector<Items> vec;for(int i = 0; i < 5; i++){cin>>val.name>>val.price;vec.push_back(val);}sort(vec.begin(), vec.end(),com);for(int i = 0; i < 5; i++)cout<<vec[i].name<<" "<<vec[i].price<<endl;return 0;}
找出一组数组中前k个最小的数
用排序的话时间复杂度nlgn,用以下方法nlgk
typedef multiset<int,greater<int> > iSet;typedef multiset<int, greater<int> >::iterator iSetIter; //因为multimap/multiset存在多个相同的键,所以不能和map,set那样直接用下标void GetLeastNumbers(vector<int>& vec, iSet& LeastNum, int k){LeastNum.clear();if(vec.size() < k || k < 1)return;vector<int>::iterator iter = vec.begin();for(; iter != vec.end(); iter++){if(LeastNum.size() < k)LeastNum.insert(*iter);else{iSetIter setIter = LeastNum.begin(); //取出最大值if(*setIter > *iter) //如果set中最大那个数比当前的数大,则删除并插入当前的新数{//LeastNum.erase(*setIter);//不能这样,这样会把键值为*setIter的都删掉LeastNum.erase(setIter);LeastNum.insert(*iter);}}}}int main(){vector<int> vec;iSet s;int val;while(cin>>val)vec.push_back(val);int k = 5;GetLeastNumbers(vec,s,k);cout<<"输出前"<<k<<"个最小的数:"<<endl;for(iSetIter iter = s.begin(); iter != s.end(); iter++)cout<<*iter<<" ";cout<<endl;return 0;}
0 0
- 利用sort进行排序
- 利用sort排序
- list利用sort进行排序
- 利用Collections.sort自定义排序
- 利用Sort()方法进行排序
- java中利用sort来排序
- javascript利用内置sort函数进行排序
- 利用Collections.sort()方法对list排序
- 利用sort对数组进行自定义排序
- C# 利用list.sort()进行排序
- 利用sort方法对json数据排序
- 利用sort对结构体数组排序
- 利用sort对多字段排序
- 利用sort对结构体排序
- lucene利用sort对查询结果进行排序示例
- 利用sort()对结构体数组进行排序
- 利用数组的Sort方法实现表格点击排序
- 利用Arrays.sort(Array,Comparator)对数组进行排序
- Add Two Numbers
- 《线程的状态》
- AOJ 6 bfs
- 开启博客的第一天
- H5—新特性
- 利用sort排序
- android自定义抽奖转盘
- xcode7免证书真机调试
- spring security 4.1 中自定义登录界面和扩展login controller
- POJ 2778 DNA Sequence(AC自动机+矩阵加速)
- Xcode编译之后使用cocoapods导入的第三库中头文件找不到库中的某些文件
- 获取时间戳
- Android RecyclerView 使用完全解析 体验艺术般的控件
- QWindowsWindow::setGeometryDp: Unable to set geometry