首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

求一个数组的最大k个数(java)

问题描述:求一个数组的最大k个数,如,{1,5,8,9,11,2,3}的最大三个数应该是,8,9,11 问题分析:     1.解法一:最直观的做法是将数组从大到小排序,然后选出其中最大的K个数,但是这样的解法...2.解法二:不对前K个数进行排序,回忆快排的算法中,那个partition函数,就是随机选择数组中的一个数,把比这个数大的数,放在数组的前面,把比这个数小的数放在数组的 后面,这时想如果找出的随机数,最终位置就是...K,那么最大的K个数就找出来了,沿着这个思路思考问题,但是这个函数,最后的索引位置并不一定是K,可能比K大也可能比K小,我们把找出的数组分成两部分sa,sb,sa是大的部分,sb是小的部分,如果sa的长度等于...,再从sb中找到,k-m个最大的元素,组合起来就是最终的结果,那么这时把问题简化成从sb中找k-m个最大的元素,所以总体来说这是一个递归的过程,虽然复杂大也是O(n*logn)但是,每一次数据量都会减少所以会更加的快...3.解法三:是利用堆排序,建立一个K阶最大堆,然后数据一个个插入队当中,那么插入队的时间复杂度是O(logK),适合数据量比较大的时候,用堆的效果更加好。

86620
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java 的字节流文件读取(一)

    Java 的 IO 流就是用于读写文件内容的一种设计,它能完成将磁盘文件内容输出到内存或者是将内存数据输出到磁盘文件的数据传输工作。...Java IO 流的设计并不是完美的,设计了大量的类,增加了我们对于 IO 流的理解,但无外乎为两大类,一类是针对二进制文件的字节流,另一类是针对文本文件的字符流。...read 方法同时又规定当读取到文件的末尾,即文件没有下一个字节供读取了,将返回值 -1 。...事实上,文件读取是不可能重置回头读取的,而一般都是将标志位置到重置点之间所有的字节临时保存了,当调用 reset 方法时,其实是从保存的临时字节集合进行重复读取,所以 readlimit 用于限制最大缓存容量...首先,这两个属性是必须的: protected byte buf[]; //这里的 count 表示的是 buf 中有效字节个个数 protected int count; 构造器: public ByteArrayOutputStream

    1.6K70

    Java 读取文件

    JAVA有多种读取文件的方式,其中比较深层次的原理在我的另外一篇文章分析过:JDK核心JAVA源码解析(5) - JAVA File MMAP原理解析,那么,我们有哪些方式去读取一个文件的内容呢?...从ClassPath中读取文件 直接从项目的classpath(maven的话src/main/resource编译之后也会存在于classpath下)读取: InputStream inputStream...resultStringBuilder.append(line).append("\n"); } } System.out.println(resultStringBuilder.toString()); 注意一定要关闭...JDK7中的读取文件内容的方式 利用Path对象省略了各种StreamReader,同时原生自带读取所有内容到内存的方法,在读取比较小的文件所有内容时我们可以考虑这么做: Path path = Paths.get...JDK8中的读取文件内容的方式 JDK8继续优化了这块的代码,引入了Stream相关框架,同时针对文件读取也能转化为Stream操作: Path path = Paths.get(getClass().

    4.1K20

    java 读取DBF gbk

    Java读取DBF文件(GBK编码)简介在Java开发中,有时需要读取DBF(dBase文件)格式的数据文件,而这些文件通常采用GBK(简体中文)编码。...本文将介绍如何使用Java读取采用GBK编码的DBF文件。...接着循环读取DBF文件中的记录,并输出记录内容。学校的学生成绩管理系统,需要从一个存储学生信息的DBF文件中读取数据并展示在系统中。...以下是一个示例代码,演示如何使用Java读取采用GBK编码的DBF文件,并输出学生的姓名和成绩信息:javaCopy codeimport org.jamel.dbf.DbfReader;import...此外,随着应用程序和数据库领域的发展,一些新兴的数据库格式和技术逐渐替代了DBF文件在一些现代应用场景中的使用。结论通过上述步骤,我们可以使用Java读取采用GBK编码的DBF文件。

    24210
    领券