careercup-高等難度 18.6

18.6 設計一個算法,給定10億個數字,找出最小的100萬個數字。假定計算機內存足以容納全部10億個數字。

解法:

方法1:排序

按升序排序所有的元素,然后取出前100萬個數,時間復雜度為O(nlog(n))

方法2:大頂堆

我們可以使用大頂堆來解題。首先,為前100萬個數字創建一個大頂堆

然后,遍歷整個數列,將每個元素插入大頂堆,并刪除最大的元素。

遍歷結束后,我們將得到一個堆,剛好包含最小的100萬個數字。這個算法的時間復雜度為O(nlog(m)),其中m為待查找數值的數量。

方法3:選擇排序算法(假如你可以改變原始數組)

在計算機科學中,選擇排序是個很有名的算法,可以在線性時間內找到數組中第i個最小(或最大)元素。

如果這些元素各不相同,則可以在預期的O(n)時間內找到第i個最小的元素。

?

轉載于:https://www.cnblogs.com/wuchanming/p/4362389.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/273340.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/273340.shtml
英文地址,請注明出處:http://en.pswp.cn/news/273340.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

不浮躁的社會是什么樣的?

不浮躁就是該吃飯吃飯,該睡覺睡覺。該看書看書,該洗澡洗澡。聊事時聊事,陪朋友時陪朋友。萬事各得其所,各安其分,專心在此時此刻,做每一件事。而不是吃飯時想著別人的魚翅海參,睡覺時想著發票報…

java jre 中導入導出證書

導入證書: 將所要導入的證書放到Javahome的jre/lib/security文件夾中 運行命令jre/bin/keytool-import -alias cacerts -keystore cacerts -file 證書名稱 輸入默認密碼:changeit 導入過程中會交互詢問是否信任該證書,輸入 yes 導出證書 …

各種類庫網址學習

http://shouce.jb51.net/net/index.html轉載于:https://www.cnblogs.com/chenls/p/4362730.html

圖片的base64編碼實現以及網頁上顯示

生成、解析base64編碼的圖片 //圖片轉化成base64字符串 public static String GetImageStr(<span style"font-family: Arial, Helvetica, sans-serif;">String imgFile</span><span style"font-family: Arial, Helvetica, sans-serif;">…

nginx windows 下安裝和配置

去nginx官網下載相應的版本 下載地址&#xff1a;http://nginx.org/download/nginx-1.6.2.zip 下載完成解壓放到你喜歡的目錄下&#xff1b;樓主的放到了F:\nginx 進入windows的cmd窗口&#xff0c;輸入如下所示的命令&#xff1a; C:\Users\YiXian>F: F:\>cd nginx s…

c/c++學習書籍

一、c Primer . 目錄內容關鍵字第一章 面向過程編程&#xff0c;面向對象編程&#xff0c;泛型 轉載于:https://www.cnblogs.com/bzsh/p/4362930.html

applicationContext.xml 配置文件的存放位置

web.xml中classpath:和classpath*: 有什么區別? classpath&#xff1a;只會到你的class路徑中查找找文件; classpath*&#xff1a;不僅包含class路徑&#xff0c;還包括jar文件中(class路徑)進行查找. 存放位置&#xff1a; 1&#xff1a;src下面 需要在web.xml中定義如下&…

完美攻略心得之圣魔大戰3(Castle Fantisia)艾倫希亞戰記(艾倫西亞戰記)包含重做版(即新艾倫希亞戰記)...

&#xff08;城堡幻想曲3&#xff0c;糾正大家個錯誤哦&#xff0c;不是圣魔大戰3&#xff0c;圣魔大戰是城堡幻想曲2&#xff0c;圣魔大戰不是個系列,艾倫西亞戰記艾倫希亞戰記,一個游戲日文名&#xff1a;タイトル キャッスルファンタジア &#xff5e;エレンシア戦記&#x…

費波納茨

//非遞歸實現static int[] fun(int num){int result[] new int[num];for (int i 1; i < num; i) {if(i<3){result[i-1]i-1;}else{result[i-1]result[i-2]result[i-3];}}return result;} //遞歸實現static int method(int num){int result 0;if(num < 2){result --n…

Hadoop生態上幾個技術的關系與區別:hive、pig、hbase 關系與區別

初接觸Hadoop技術的朋友肯定會對它體系下寄生的個個開源項目糊涂了&#xff0c;我敢保證Hive,Pig,HBase這些開源技術會把你搞的有些糊涂&#xff0c;不要緊糊涂的不止你一個&#xff0c;如某個菜鳥的帖子的疑問&#xff0c;when to use Hbase and when to use Hive&#xff1f;…

可變形參

public class TestVarargs {/*** param args* YiXian* 2015-3-11*/public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("the program starting>>>>>>>>>>>");test(2,"java權威指…

解決android中Layout文件下的xml文件配好后,R類中不能自動生成相應代碼

不能更新的原因: 1.在xml文件中代碼錯誤或者格式錯誤 2.eclipse 編譯器是老版本 3.布局文件的文件名有大寫字母 4.含有相同文件名、格式的xml文件解決方法: 1.找到出錯的xml文件中的錯誤代碼格式改正&#xff0c;并執行project —clean 操作 2.eclipse 選擇Project--Bu…

邏輯運算與位移運算

異或運算True ⊕ False TrueFalse ⊕ True TrueFalse ⊕ False FalseTrue ⊕ True False同或運算True ⊙ False FalseFalse ⊙ True FalseFalse ⊙ False TureTrue ⊙ True Ture或運算True || False TrueFalse || True TrueFalse || False FalseTrue || True Tru…

log4net 日志框架的配置

log4net 日志框架的簡單配置 添加對log4net程序集的引用 選擇程序集文件添加引用即可&#xff0c;需要注意的是需要添加相應程序版本的程序集&#xff0c;如果你的應用是基于.netFramework2.0&#xff0c;則應選擇net 2.0版本的程序集 修改配置文件&#xff0c;配置log4net相…

原碼 反碼 補碼

一.機器數和真值 機器數&#xff1a; 由于一些硬件的限制計算機只能識別二進制數據&#xff0c;因此在計算機中只會存儲二進制數據&#xff1b;機器數是帶符號的&#xff0c;在計算機用一個數的最高位存放符號, 正數為0, 負數為1. 比如&#xff0c;十進制中的數 7&#xff0…

CSS 設計指南(第3版) 初讀筆記

第1章 HTML標記與文檔結構 關于<title>標簽&#xff1a;搜索引擎會給<title>標簽中的文字內容賦予很高的權重。而且這些文字也會作為網頁標題出現在搜索結果列表中。 無論你想了解哪個HTML元素&#xff0c;第一個要問的問題都應該是&#xff1a;它是塊元素&#xf…

win7安裝python開發環境,運行python

在win7上安裝python的開發環境是非常簡單的事情 Step1&#xff1a;下載python安裝文件 url&#xff1a;https://www.python.org/download 去這里找到你想要下載的文件 Step2&#xff1a;安裝 windows上當然是傻瓜式安裝了&#xff0c;你還在糾結什么呢 Step3&#xff1a;…

HC-05藍牙模塊基本使用

1.進入AT模式 EN輸入高電平按住按鍵不放,然后上電,進入AT模式,不過AT指令只能輸入一次,下次再輸入AT需要重新進入 2.串口波特率設為38400,進行AT模式下的指令操作 3.基本AT指令 ATORGL   恢復出廠設置 ATNAME newName  修改藍牙名字 ATROLE0/1/2  0:從模式 1:主模式 2:回…

Objective-C中的@property和@synthesize用法

代表“Objective-C”的標志&#xff0c;證明您正在使用Objective-C語言 Objective-C語言關鍵詞&#xff0c;property與synthesize配對使用。 功能&#xff1a;讓編譯好器自動編寫一個與數據成員同名的方法聲明來省去讀寫方法的聲明。 如&#xff1a; 1、在頭文件中&#xff1a;…

c++11編碼規范 NULL還是nullptr

0和nullptr/NULL 至于指針&#xff08;地址值&#xff09;&#xff0c;根據實際選擇用0、NULL還是nullptr。對使用了C11特性的項目&#xff0c;選用nullptr&#xff1b;對于C03項目&#xff0c;推薦NULL&#xff0c;因為它像是一個指針轉載于:https://www.cnblogs.com/JD85/p/4…