百度軟體開發和測試面試

2021-08-16 19:28:32 字數 1945 閱讀 9941

2、手寫演算法直到陣列最後乙個節點的路徑和

3、什麼是管道、什麼是訊號量

程序ipc():

(1)管道(pipe):管道可用於具有親緣關係的程序間的通訊,是一種半雙工的方式,資料只能單向流動,允許乙個程序和另乙個與它有共同祖先的程序之間進行通訊,管道只能承載無格式位元組流。

(2)fifo:命名管道克服了管道沒有名字的限制,同時除了具有管道的功能外(也是半雙工),它還允許無親緣關係程序間的通訊。命名管道在檔案系統中有對應的檔名。命名管道通過命令mkfifo或系統呼叫mkfifo來建立。

(3)訊號(signal):訊號是比較複雜的通訊方式,用於通知接收程序有某種事件發生了,除了程序間通訊外,程序還可以傳送訊號給程序本身

(4)訊息佇列:訊息佇列是訊息的鏈結表,包括posix訊息佇列system v訊息佇列。有足夠許可權的程序可以向佇列中新增訊息,被賦予讀許可權的程序則可以讀走佇列中的訊息。訊息佇列克服了訊號承載資訊量少,管道只能承載無格式位元組流以及緩衝區大小受限等缺點。 

(5)共享記憶體:使得多個程序可以訪問同一塊記憶體空間,是最快的可用ipc形式。是針對其他通訊機制執行效率較低而設計的。往往與其它通訊機制,如訊號量結合使用,來達到程序間的同步及互斥。

(6)記憶體對映:記憶體對映允許任何多個程序間通訊,每乙個使用該機制的程序通過把乙個共享的檔案對映到自己的程序位址空間來實現它。 

(7)訊號量(semaphore):主要作為程序間以及同一程序不同執行緒之間的同步手段。

(8)套接字(socket):更為一般的程序間通訊機制,可用於不同機器之間的程序間通訊。 

4、雜湊表

雜湊技術是在記錄的儲存位置和它的關鍵字之間建立乙個確定的對應關係f,使得每個關鍵字key

對應乙個儲存位置f(key),查詢時,根據這個確定的對應關係找到給定值key的對映f(key),若查

找集合中存在這個記錄,則必定在f(key)的位置上。f為雜湊函式。

負載因子最好 < 1/2,否則會發現經常出現衝突。

常用的雜湊函式:

1)直接定位址法:f(key)=a*key+b;簡單。均勻,不會產生衝突,適合表較小且連續的情況

2)數字分析法:通常適合處理關鍵字位數較大的情況(手機號碼:後4位代表使用者)

3)平方取中法:平方數的中間幾位,適合不知道關鍵字的分布,位數又不是很大的情況

4)摺疊法:將關鍵字從左到右分割成位數相等的幾部分,將這幾部分疊加求和,按雜湊表

表長,取後幾位作為雜湊位址。

5)除留餘數法:f(key) = key mod p (p<= m),不僅可以對關鍵字直接取模,也可在摺疊、

平方取中後再取模。

6)隨機數法:f(key)=random(key).隨機函式,關鍵字長度不等時,採用這個方法構造散

列函式。

佇列——是一種先進先出的線性表,允許插入的一端稱為隊尾,允許刪除的一端是隊頭。

1、單鏈表有環:

public boolean hasc(listnode head)

return false;

}2、輸入的字串中含有給定的字串的個數

public int getcount(string str,string a)

return count;

}string ss = str.spilt(a);

return ss.length-1;

3、程序間的通訊方式(3種)

1)管道:是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有親緣關係的程序間使用

(父子程序)。

2)有名管道:也是半雙工的通訊方式,可以允許在沒有親緣關係的程序間使用。

3)訊號量:是乙個計數器,可以用來控制多個程序對共享資源的訪問,常作為一種鎖機制,防止某

程序在共享資源時,其他程序也訪問該資源。作為程序間以及同乙個程序內不同執行緒之

間的同步手段。

4)訊息佇列:是由訊息的鍊錶,

百度測試開發面試題

學姐 學長總結的面試題 感謝學姐 針對質量部測試開發 1.幾種常見演算法看下,能夠大概描述出來演算法的過程,複雜度 排序 查詢等 2.給你設定幾種場景,讓你解答 比如給你兩部手機,讓你站在一百層樓高的地方,假設在第 n層手機摔下就會摔破,問你怎樣用著兩部手機確定這個臨界層。場景測試 3.怎樣知道乙個...

測試開發面試真題(百度)

1 黑盒測試和白盒測試常用的測試方法有哪些?舉例說明 白盒測試 邏輯覆蓋法,主要包括語句覆蓋 判斷覆蓋 條件覆蓋 判斷條件覆蓋 條件組合覆蓋和路徑覆蓋。基本路徑測試法。黑盒測試 等價類劃分 邊界值分析 錯誤推測法 因果圖法 功能圖法。2 靜態測試和動態測試的概念 靜態測試是指不執行被測程式本身,僅通...

百度測試開發面試題準備

1.幾種常見演算法看下,能夠大概描述出來演算法的過程,複雜度 排序 查詢等 2.給你設定幾種場景,讓你解答 比如給你兩部手機,讓你站在一百層樓高的地方,假設在第n層手機摔下就會摔破,問你怎樣用著兩部手機確定這個臨界層。第一部手機 決定在0 100層之間需要劃分幾個區間 第二部手機 確定區間裡的層級 ...