题目:给出N个无序数,然后找出其中最大k个数解题思路:         首先测试数据有
转载 2022-11-17 00:11:15
153阅读
# 寻找最大k个数冒泡排序算法 在数据处理中,我们常常需要从一组数据中找出最大个数。虽然可以使用多种方法来实现这一目的,但这里我们将专注于冒泡排序算法。尽管冒泡排序在效率上不是最优,但它简单易懂,适合初学者学习和理解。 ## 冒泡排序算法简介 冒泡排序是一种简单排序算法。它重复地遍历待排序数列,比较相邻元素并交换它们位置,如果它们顺序错误。这个过程就像气泡一样,较大元素“浮”
原创 2024-10-15 07:04:12
18阅读
数据类型一、数据类型 1.Java八大基本数据类型为: 整型 byte字节型1字节 8bit  最大存储数据量是255,存放数据范围是-128~127之间 short短整型2字节 16bit最大数据存储量是65536,数据范围是-32768~32767之间 int整型4字节 32bit最大数据存储容量是232次方减1,数据范围是负2
转载 2024-01-23 22:15:11
62阅读
这里k==100#include #include #include #include #include using namespace std;int main(){ //默认是大顶堆 priority_queue q; int n, t; scanf("%d", &n); for(int i=0; i0) { if(first) ...
转载 2020-08-06 16:51:00
68阅读
2评论
1. 前言本文一些图片, 资料 截取自编程之美2. 问题描述3. 问题分析这道题是一道非常经典题目, top k 因此解法也
解法一:假设元素数量不大,用快排或堆排序都是不错选择,平均时间复杂度都是O(N*log N)。然后取出前K个,O(K
原创 2023-06-13 10:30:33
54阅读
问题描写叙述:求一个数最大k个数。如,{1,5,8,9,11,2,3}最大个数应该是,8,9,11 问题分析: 1.解法一:最直观做法是将数组从大到小排序,然后选出当中最大K个数。可是这种解法,复杂度是O(logn*n),可是有时候并不须要排序,用简单选择排序。或者是冒泡排序,那么就K
转载 2017-07-09 15:23:00
128阅读
这里是整理后代码:import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.List; import com.dm.core.structure.tupler.StrDoubleTuple;/** * 最大堆,用作优先队列TOPK查找 * 原理:每个节点
在大量数据中找出最大或者最小K个数
原创 2016-04-04 23:27:03
629阅读
1点赞
         这是一个很常见算法问题,从一组数中选出最大K个。 《编程之美》上也有这个问题一些解法。其中,一种较好解法就是利用有序队列(如JAVAPriorityQueue),主要算法思路如下: 先从第一个数开始,依次入队k个数,此时,有序队列以对这k个数排序完成,按照从小(队列首)到大
原创 2010-02-20 13:17:21
855阅读
问题:在N个数据中查找到第k个大值。 原文地址 所谓“第(前)k大数问题”指的是在长度为n(n>=k)乱序数组中S找出从大到小顺序第(前)k个数问题。 解法1:我们可以对这个乱序数组按照从大到小先行排序,然后取出前k大,总时间复杂度为O(n*logn + k)。 解法2:利用选择排序或交互
转载 2013-03-26 15:36:00
872阅读
2评论
给你n个数,让你找出其中最大K个数。解法1:很多人上来就对其进行排序,选用不同排序方法有不同时间复杂
原创 2022-07-19 10:19:28
151阅读
   从N个数据中找出最大K个数据,而且这里有一个限制:内存里存不下所有的N个数据,但是可以存下K个数据。这就让我们打消了用排序方法来解念头。   在这里我们使用堆排序来完成。    因为我们只能有K个数据那么大空间,所以我们建一个K堆,将NK个数据插入到堆中,然后调整堆。(对于堆结构不了解可以查看我微博 &n
原创 2016-04-28 23:38:43
1116阅读
   拿到这个题目我想到了很多方法,但是在我想到方法中,要把在100万个数中找到前k个数,都不适用。最后通过我不断研究,我想到了我认为最简单方法,就是利用堆来做这道题目。   下面我分析一下我用堆排序思路:     1.我先建一个大小为k堆。     2.把100万中前k个数放到这个堆中。
原创 精选 2016-05-09 15:39:24
1306阅读
应用-> 海量数据处理
原创 2016-06-02 11:20:41
1760阅读
编程之美2.5:寻找最大K个数 引申:寻找第k数:方法一:// 选择第k数(通过改进快速排序来实现) public static void SelectShort(int[] array, int low, int high, int k, out int value) { int i = low; int j =
转载 2014-01-07 14:52:00
40阅读
2评论
有若干个互不相等无序数,怎么选出其中最大k个数。我自己方案:因为学过找第k大数O(N)算法,所以第一反应就是找第K数。然后把所有大于等于第k数取出来。写这个知道算法代码都花了2个多小时,反思,太慢了。 注意边界条件,不要混混沌沌。/************我自己解法*****...
转载 2014-10-21 17:08:00
79阅读
2评论
      在一个数组中寻找最大K个数,我们首先说一种非常简单方法,利用快速排序中分割算法,即我们经常看见partition。这个函数会返回一个 int 类型值,这个值代表是前一半数字和后一半数字分割点,前一半数字都小于等于后一半数字(递增排序),所以,我们只要找到相对应分割点,即可以找到最大K个数,或者最小K个数,这就是利用线性方法可以完成任务
原创 2023-05-11 21:31:19
97阅读
( 算法树之其他算法与技巧 )【 JAVA大数 】在 Java 中,有许多数字处理类,比如 Integer类,但是Integer类有一定局限性。我们都知道 Integer 是 Int 包装类,int 最大值为 2^31-1。若希望描述更大整数数据时,使用Integer 数据类型就无法实现了,所以Java中提供了BigInteger 类。BigInteger类型数字范围较Integer,
转载 2023-09-26 19:59:13
31阅读
        这是一道经常被人们忽视题,因为我想会写冒泡排序的人应该都会做这一道题。先给这N个数来一个排序若是求最大K个数就从大到小排序,若是求最小数就从小到大排序,然后来一个循环输出前K个数就行了。好像是很简单,但大家没有想到是,当数非常之多时候,排序效率就很低了,所以得想另外方法。 此题完全可以用堆特性来
原创 2011-11-16 23:29:44
1158阅读
  • 1
  • 2
  • 3
  • 4
  • 5