1. 程式人生 > >演算法題--大資料取最大前幾個

演算法題--大資料取最大前幾個

10億個整數,隨機生成,可重複,求最大的前1萬個。當時我一下子就蒙了,沒反應過來,何況我還正在燒著菜呢,所以我就沒細想,說了一個連我都鄙視我的思路:我說匯入資料庫,然後用select語句選出最大的前1萬個。可能我的答案連面試官都無語了,所以他就沒再往下問了,不過他還是通知我明天16號早上去騰訊大廈筆試,由於我明天沒空,就推遲到了17號早上10點。至此,整個電話面試就結束了。過後,我想了想,10億個整數選前1萬個大數,其實可以用:分治法+hash+多路歸併排序來做,比如說,先把10億個整數對1000取模,儲存到1000個檔案中,然後對每一個檔案進行內部排序(比如快速排序,從大到小排序),然後再對這1000個檔案進行多路歸併,取出前1萬個最大的數即可。

相關推薦

演算法--資料

10億個整數,隨機生成,可重複,求最大的前1萬個。當時我一下子就蒙了,沒反應過來,何況我還正在燒著菜呢,所以我就沒細想,說了一個連我都鄙視我的思路:我說匯入資料庫,然後用select語句選出最大的前1萬個。可能我的答案連面試官都無語了,所以他就沒再往下問了,不過他還是通知我

mysql匯入檔案超過100M的資料可以到2g

修改mysql的配置檔案my.ini max_allowed_packet = 256M 新增 wait_timeout=2880000 interactive_timeout = 2880000 如果沒有修改以上配置,效率非常低   在windows中可以通過以下方式匯入

學習資料開發應該瞭解的技能

1、Linux 大資料叢集主要建立在linux作業系統上,Linux是一套免費使用和自由傳播的類Unix作業系統。而這部分的內容是大家在學習大資料中必須要學習的,只有學好Linux才能在工作中更加的得心應手。 2、Hadoop 我覺的大家聽過大資料就一定會聽過hadoo

資料核心的關鍵技術:32演算法

奧地利符號計算研究所(Research Institute for Symbolic Computation,簡稱RISC)的Christoph Koutschan博士在自己的頁面上釋出了一篇文章,提到他做了一個調查,參與者大多數是電腦科學家,他請這些科學家投票選出最重要

10000億資料尋找 或者小 n 數 各種演算法比較

尋找最優的 TopN 演算法 1 概要 在大量的資料記錄中,依據某可排序的記錄屬性(一般為數字型別),找出最大的前 N 個記錄,稱為 TopN 問題。這是一個常常遇到的問題,也是一個比較簡單的演算法問題,卻很少能有人能寫出最優化的 topn 演算法。本文對常見的 To

【mysql技巧】按某一欄位分組(小)值所在行的資料

mysql技巧--按某一欄位分組取最大(小)值所在行的資料,這是mysql資料庫程式設計師經常用到的在處理一些報表資料時候可以活用!那麼獵微網將總結幾種mysql查詢最大值 mysql查詢最小值的方法! mysql表圖如下 具體Php 連線mysql資料庫ph

mysql按某一欄位分組(小)值所在行的資料

表結構指令碼: CREATE TABLE `student_grade` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(64) DEFAULT NULL, `grade` in

演算法差值

陣列取最大差值 假定有一個數組,找到陣列中的最大差值。 var arrTest = [10,5,11,7,8,9,2,1]; ----------我是分割線------------------- 說一下自己的思路: 求最大差值,應該是找出最大值和最小值

C語言經典基礎演算法(從小白到神)

我會把我學習C語言碰到的經典的演算法題目全都歸類到這個帖子中,希望對和我一樣學習程式設計的小白有幫助!但求精簡,以最少的時間入門C語言。 1.輸入n個數,輸出其中最大的一個數。 #include <stdio.h> int main() { int n

MySql按字段分組值記錄 [此博文包含圖片]

from htm 技術 方法 sin gid 最大值 count not 要求:獲得按table1_id分組,並且age最大的記錄信息,即2、3、5條 方法一: select * from (select * from table2 order by age

48.reduce排序,去重,

prev col function red logs ngui ras value ber var arr = [2,4,1,-1,9] //取最大值 var maxValue = arr.reduce(function(a,b){ return a>

java三值、菜單新增修改、猜數字大小

com nbsp 大小 .com java img image ava 分享 java三個取最大值、菜單新增修改、猜數字大小

代碼(35)— 和子矩陣

每一個 我們 span 又是 bar emp 擁有 部分 。。 1、最大和子矩陣 問題:求一個M*N的矩陣的最大子矩陣和。比如在如下這個矩陣中:0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2 擁有最大和的子矩陣為:9 2-4 1-1 8其和為15。

多組測試資料

Description 輸入一些整數,求最大值 Input 多組測試資料 首先輸入1個整數n表示測試組數 然後每行首先輸入1個整數m,再輸入m個整數 Output 對於每組測試資料輸出1行,內容為m個整數的最大值 #include<stdio.h> int main() {

【Java筆記】為什麼資料範圍值加一等於小值

在程式中有時候不小心將最大數值加1,我們會得到一個負數,這個負數就是這種資料型別的最小值。 下面看一個示例: public class Number { public static void main(String[] args) { System.out.println("最大的整數

演算法 求子陣列的和 C

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

函式,

using System; namespace C取最大值 { class Program { static int Max(int[] array){ int max=array[0]; for (int i = 1;

關於MYSQL group by 分組按時間值的實現方法!

類如 有一個帖子的回覆表,posts( id , tid , subject , message , dateline ) , id 為 自動增長欄位, tid為該回復的主題帖子的id(外來鍵關聯), subject 為回覆標題, message 為回覆內容, dateline 為回覆時間,用UNIX 時間

一起學資料詳細的資料學習資源教程,嘔心瀝血全部分享

跟大家已經分享了這麼長時間的大資料文章了,我們的一起來學大資料系列已經將Java和Linux全部做了一次基礎的分享。 今天,我把我整理的全套大資料資源分享給大家,一起共同學習,記得關注呦。   很多初學者,對大資料的概念都是模糊不清的,大資料是什麼,能做什麼,學的時候,該按照什

JS中實現陣列

情景: 有一個如下陣列: var classify=["5","47","98","12","165"]; 我現在要求取出這個數組裡面的最大值。 完整程式碼: function ceshi(){ var classify=["5","47","98","12","165