描述

一亿个数找最大的1000个数,要求效率高占用内存少。函数原型为:find_max_data(int* source_data, int* max_data),其中source_data是存放一亿个数的数组,max_data用于存放其中最大的1000个数。

思路

使用multiset的自动排序功能(默认从小到大排列),每次插入比最小数更大的值。

代码

// 从1亿个数中找到最大的1000个数
void find_max_data(int *source_data, int length, int k)
{int count = 0;multiset<int> set;multiset<int>::iterator it;for(int i = 0; i < length; i++){if(count < k){set.insert(source_data[i]);}else{it = set.begin();if(*it < source_data[i]){set.erase(it);set.insert(source_data[i]);}}count++;}it = set.begin();// 打印for (; it != set.end(); it++){cout<<*it<<endl;}
}

Coding: 一亿个数找最大的1000个数相关推荐

  1. 在10亿个数中找出前1000个最大的

    在10亿个数中找出前1000个最大的 假设现在有一个文件,里面存放了10亿个整数,需要找出前1000个最大的. 方法: 1.普通排序,部分排序:几乎不可取. 2.分治法:随机选一个数t,然后对整个数组 ...

  2. 从十亿个数中找出前1000个最大的数的算法

    10亿个数中找出1000个最大的数的算法思路: 1,先拿出前1000个数字,并排序,找出最小值为 minValue .    2,  然后再依次拿出1000个数字,找出最大值为 tempMaxValu ...

  3. 【面试现场】如何在10亿数中找出前1000大的数

    小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司. 之前小史在BAT三家的面试中已经挂了两家,今天小史去了BAT中的最后一家面试了. 简单的 ...

  4. 如何在10亿个整数中找出前1000个最大的数?

    作者:vincent-duan,专注 Java,沉迷开源,架构师社区合伙人! 面试题目:如何在10亿个整数中找出前1000个最大的数. 我们知道排序算法有很多: 冒泡算法:通过两层for循环,外层第一 ...

  5. 如何在10亿个整数中找出前1000个最大的数(TopN算法)

    面试题目:如何在10亿个整数中找出前1000个最大的数. 我们知道排序算法有很多: 冒泡算法:通过两层for循环,外层第一次循环找到数组中最大的元素放置在倒数第一个位置,第二次循环找到第二大的元素放置 ...

  6. 如何在 10 亿数中找出前 1000 大的数?

    作者 | channingbreeze 责编 | 胡巍巍 小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司. 之前小史在BAT三家的面试中已 ...

  7. 100亿数据找出最大的1000个数字的4种方法

    100亿数据找出最大的1000个数字 面试题:解决的四种方法: 方法一:全排序法 1.最容易想到的方法是将数据全部排序.该方法并不高效,因为题目的目的是寻找出最大的10000个数即可,而排序却是将所有 ...

  8. 100亿数据找出最大的1000个数字

    这是互联网领域一个比较经典的算法问题(top k),如何在巨大的数据中找出最大,或者访问量最高的前10个,前100个或者前1000个数据.比如在2亿用户记录中找出信用等级最高的,在上亿个搜索词汇中找出 ...

  9. 【转】5亿个数找中位数

    原文链接:http://www.cnblogs.com/qianye/archive/2012/11/29/2794533.html 找中位数最容易想到的方法就是,先对序列进行排序,取中位数,然而5亿 ...

最新文章

  1. php计算经纬度间的距离
  2. 【SpringMVC 之应用篇】 2_SpringMVC 的传参问题
  3. 什么是 Webpack?【Webpack Book 翻译】
  4. SAP Spartacus的b2cLayoutConfig
  5. MVC Web.Config 配置错误
  6. java面向对象(this关键字)
  7. 不愿意和别人打交道_如果你的交际能力很差,不喜欢与人打交道,这3种职业最适合你...
  8. LeetCode 290. 单词规律(哈希)
  9. 云原生日志管理瑞士军刀 Fluent Operator 中文入门教程
  10. [《回家寄事》闲笔记事集]2010年1月18日
  11. CentOS利用WebHook实现PHP自动部署Git代码
  12. 守望先锋战网服务器维护多长时间,守望先锋国服压力测试多长时间 压力测试删档吗等问题解答...
  13. win10 + Ubuntu 20.04 LTS 双系统 引导界面美化
  14. 帝豪gs车机系统wince_用销量告诉你答案 选帝豪GS准没错
  15. system(“pause“);
  16. 基于PHP的校园留言板系统(带后台管理)
  17. 转换word等文件为swf文件
  18. VM虚拟机-三种网络连接方式(桥接、NAT、仅主机模式)
  19. 邓迪大学信息无障碍相关项目概要
  20. redis的key都变成了backup,值也都不见了,这是为什么呢?

热门文章

  1. 目标检测的“尽头”竟是语言建模?Hinton团队提出Pix2Seq:性能优于DETR
  2. 没什么是一次排序解决不了的,如果有,那就One more time
  3. 互联网1分钟 |1214
  4. 个人作业1-数组(续1)
  5. java 有什么方法可以动态或循环的生成对象名
  6. 第十二单元文件的归档/压缩/传输
  7. ubuntu/deepin 禁用IPV6
  8. js 根据模板动态添加行
  9. android中的broadcastReceiver
  10. 使用 Oracle Datapump API 实现数据导出