参考博客:

https://blog.csdn.net/beiyetengqing/article/details/8011792

/*基于quicksort实现的原理如下:1. 假设数组为 array[N] (N = 1 亿),首先利用quicksort的原理把array分成两个部分,左边部分比 array[N - 1] (array中的最后一个值,即pivot) 大, 右边部分比pivot 小。然后,可以得到 array[array.length - 1] (即 pivot) 在整个数组中的位置,假设是 k.
2. 如果 k 比 99 大,原数组变成了 array [0, ...  k - 1], 然后在数组里找前 100 最大值。 (继续递归)
3. 如果 k 比 99 小, 原数组变成了 array [k + 1, ..., N ], 然后在数组里找前 100 - (k + 1) 最大值。(继续递归)
4. 如果 k == 99, 那么数组的前 100 个值一定是最大的。(退出)*/import java.util.Random;public class TopHundred {public void tophundred(int[] array, int start, int end, int k) {int switchPointer = start;int pivot = array[end]; //array最后一个值作为pivotfor (int i = start; i < end; i++) {if (array[i] >= pivot) {swap(array, switchPointer, i);switchPointer++;}}swap(array, end, switchPointer);//交换后,array左边的值比pivot大,右边的值比pivot小if (switchPointer < k - 1) {

100万个数据里面找出100个最大的相关推荐

  1. 在有限多的不大于100的正整数中,找出尽量多个相加起来值介于98~102之间的组合...

    问题描述:<?XML:NAMESPACE PREFIX = O /> 在有限多的不大于100的正整数中,找出尽量多个相加起来值介于98-102之间的组合. 组合的个数限制在2 和3. 比如 ...

  2. 13 | 线性排序:如何根据年龄给100万用户数据排序?

    三种时间复杂度是 O(n) 的排序算法:桶排序.计数排序.基数排序.因为这些排序算法的时间复杂度是线性的,所以我们把这类排序算法叫作线性排序(Linear sort).之所以能做到线性的时间复杂度,主 ...

  3. qt中的mysql能存入多少行数据_Qt中提高sqlite的读写速度(使用事务一次性写入100万条数据)...

    SQLite数据库本质上来讲就是一个磁盘上的文件,所以一切的数据库操作其实都会转化为对文件的操作,而频繁的文件操作将会是一个很好时的过程,会极大地影响数据库存取的速度.例如:向数据库中插入100万条数 ...

  4. sql server批量插入数据库的操作100万条数据

    1.数据库中 首先创建表->连接数据库->通过循环插入数据 2.建立测试表 在这里插入代码[c-sharp] view plain copy --Create DataBase creat ...

  5. python(dict字典相关知识以及小例子:生成一个列表,存放100个随机整数,找出出现次数最多的数字)

    一.什么是字典? #字典的使用 #子字典是一个容器类,可以用来存储数据 #列表存储数据特点:1.有序的 2.每一个都有一个索引,通过索引可以对数据进行查询,修改,删除#字典存储数据: key:valu ...

  6. 5、找出100到1000内的不含9的素数,存到result.txt文件中

    题目: /* 5.找出100到1000内的不含9的素数,存到result.txt文件中 */ 我没有写到result.txt文件中,我写到了Five127.txt文件中 代码: public clas ...

  7. 极限挑战—C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码)

    实际工作中有时候需要把大量数据导入数据库,然后用于各种程序计算,本实验将使用5中方法完成这个过程,并详细记录各种方法所耗费的时间. 本实验中所用到工具为VS2008和SQL SERVER 2000.S ...

  8. 微软工程院院长:1万多应聘者挑不出100人

    微软工程院院长:1万多应聘者挑不出100人 "过去两三个月,我最主要的精力都花在了雇人上.遗憾的是,1万多名应聘者中,居然招不到足够合适的人."今天,在北京中关村希格玛大厦微软亚洲 ...

  9. c语言求100以内整除13的最大,VB程序设计的一道题,找出100以内能被3整除的所有数之和,并把值保存在一维数组中...

    VB程序设计的一道题,找出100以内能被3整除的所有数之和,并把值保存在一维数组中以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看 ...

  10. 水仙花数 java 1 100_Java练习题1:找出100——999数中的所有水仙花数

    练习题:找出100--999种所有的水仙花数. 分析:水仙花数是指:一个三位数,其各位数字立方和等于该数本身.例如:370=33+73+00.这就说明370是一个水仙花数. 所以要判断一个三位数是不是 ...

最新文章

  1. java并发vol_java 并发中 volitile、synchronized和lock的比较(一)
  2. 移动互联网时代之用户名和密码何去何从(1)
  3. SQL 进阶技巧(上)
  4. 为什么你看了那么多面经,面试还是挂了?
  5. J. Med. Chem. | 通过负向设计优化筛选化合物库
  6. Ext.data.reader.Json reader: json
  7. 【数据竞赛】高质量数据科学竞赛平台汇总
  8. TabLayout+Fragment+ViewPager+FragmentStatePagerAdapter实现Tab标签
  9. google站长管理工具
  10. “针对即席工作负荷进行优化”如何影响你的计划缓存
  11. SAP License:启动物料帐后不可更改物料价格的处理方法
  12. VB编程用经常要用到的算法
  13. nginx keepalived vip 高可用
  14. 本科专业计算机课程,本科计算机专业有哪些课程
  15. DNS 技术标准综述
  16. 计算机cpu天体图,CPU天梯图2019年11月最新版 台式电脑处理器性能排名与选购建议...
  17. 全国12315平台网上投诉与举报提示“含有不规范用语”的应对方法
  18. H5 Canvas绘制三角函数图像
  19. 云原生系列二【Kubernetes】Kubernetes是如何运行的?
  20. Docker安装JIR

热门文章

  1. Facts and Factors发布报告:到 2026 年ADAS传感器市场规模将超过250亿美元
  2. 2016本科论文节选
  3. 规则 防火墙 iptables input accept
  4. bl-sg108m八口千兆交换机登录管理界面
  5. java小狗的状态代码_狗屎一样的代码!快,重构我!
  6. HTML基础知识总结(相对较全)
  7. 一位蜗牛程序员十二年工作总结-2020
  8. PTA团队天梯赛║L1-024 后天
  9. 将自己在CSDN上的文章下载到本地并上传到掘金
  10. 常用英文和错误的总结