備戰百度實習招聘

2021-07-02 15:56:45 字數 1899 閱讀 4278

1.**編譯過程

在cpp檔案中展開include檔案。

將每個cpp檔案編譯為乙個對應的obj檔案。

連線obj檔案成為乙個exe檔案(或者其它的庫檔案)

2.100w

個整數中求最小的

k個數,有哪些方法,優缺點

快速排序: 分割槽時,根據數p將陣列分為兩部分,設大於p的數個數為a,小於p的數的個數為b。如果,a>=k,則從這a個數取最大的k個數,若a

3.兩個

10g的檔案中,求含有相同整數,有哪些方法,優缺點

(1)快排+二分查詢 (2)位圖法

位圖法的應用

1、給40億個不重複的unsigned int的整數,沒排過序的,然後再給乙個數,如何快速判斷這個數是否在那40億個數當中

首先,將這40億個數字儲存到bitmap中,然後對於給出的數,判斷是否在bitmap中即可。

2、使用位圖法判斷整形陣列是否存在重複

遍歷陣列,乙個乙個放入bitmap,並且檢查其是否在bitmap中出現過,如果沒出現放入,否則即為重複的元素。

3、在2.5億個整數中找出不重複的整數,注,記憶體不足以容納這2.5億個整數

參 考的乙個方法是:採用2-bitmap(每個數分配2bit,00表示不存在,01表示出現一次,10表示多次,11無意義)。其實,這裡可以使用兩個普 通的bitmap,即第乙個bitmap儲存的是整數是否出現,如果再次出現,則在第二個bitmap中設定即可。這樣的話,就可以使用簡單的1- bitmap了。

hash_map:

其基本原理是:使用乙個下標範圍比較大的陣列來儲存元素。可以設計乙個函式(雜湊函式,也叫做雜湊函式),使得每個元素的關鍵字都與乙個函式值(即陣列下標,hash值)相對應,於是用這個陣列單元來儲存這個元素;也可以簡單的理解為,按照關鍵字為每乙個元素「分類」,然後將這個元素儲存在相應「類」所對應的地方,稱為桶。 

但是,不能夠保證每個元素的關鍵字與函式值是一一對應的,因此極有可能出現對於不同的元素,卻計算出了相同的函式值,這樣就產生了「衝突」,換句話說,就是把不同的元素分在了相同的「類」之中。 總的來說,「直接定址」與「解決衝突」是雜湊表的兩大特點。 

hash_map,首先分配一大片記憶體,形成許多桶。是利用hash函式,對key進行對映到不同區域(桶)進行儲存。其插入過程是: 

1. 得到key 

2. 通過hash函式得到hash值 

3. 得到桶號(一般都為hash值對桶數求模) 

4. 存放key和value在桶內。 

其取值過程是: 

1. 得到key 

2. 通過hash函式得到hash值 

3. 得到桶號(一般都為hash值對桶數求模) 

4. 比較桶的內部元素是否與key相等,若都不相等,則沒有找到。 

5. 取出相等的記錄的value。 

hash_map中直接位址用hash函式生成,解決衝突,用比較函式解決。這裡可以看出,如果每個桶內部只有乙個元素,那麼查詢的時候只有一次比較。當許多桶內沒有值時,許多查詢就會更快了(指查不到的時候). 

由此可見,要實現雜湊表, 和使用者相關的是:hash函式和比較函式。這兩個引數剛好是我們在使用hash_map時需要指定的引數。

有乙個1g大小的乙個檔案,裡面每一行是乙個詞,詞的大小不超過16位元組,記憶體限制大小是1m。返回頻數最高的100個詞。

4.殭屍程序產生的原因及解決方式:

如果子程序先於父程序退出, 同時父程序又沒有呼叫wait/waitpid,則該子程序將成為殭屍程序。通過ps命令,我們可以看到該程序的狀態為z(表示僵死)。

一般,為了防止產生殭屍程序,在fork子程序之後我們都要wait它們;同時,當子程序退出的時候,核心都會給父程序乙個sigchld訊號,所以我們可以建立乙個捕獲sigchld訊號的訊號處理函式,在函式體中呼叫wait(或waitpid),就可以清理退出的子程序以達到防止殭屍程序的目的。



備戰百度實習 演算法篇

給你乙個長度為n的鍊錶。n很大,但你不知道n有多大。你的任務是從這n個元素中隨機取出k個元素。你只能遍歷這個鍊錶一次。你的演算法必須保證取出的元素恰好有k個,且它們是完全隨機的 出現概率均等 解 先選中前k個,從第k 1個元素到最後乙個元素為止,以k i i k 1,k 2,n 的概率選中第i個元素...

百度實習面試

c 1 c 細節語法,虛函式,多型,vector 2 寫 二分查詢 快排 改進 逆置鍊錶 3 三次握手 tcp ip結構 4 linux命令 5 資料庫語句 php 1 php寫程式 2 php語法 3 mysql索引 事務 併發 4 mysql多表設計 5 php執行過程 6 c 編譯過程 pyt...

百度2011實習生招聘筆試題

一 簡答題 1 extern c 是什麼意思,作用是什麼?2 至少說出兩個設計模式,闡述內容及其適用情況,最好有偽 3 tcp ip中的time wait是什麼意思?在什麼情況下會出現,簡述其好處和壞處。二 演算法與程式設計 1 某系統每天要執行n個任務 n 1000 任務之間存在複雜的依賴關係,如...