百度面試題 元件依賴性問題

2021-06-09 06:30:07 字數 487 閱讀 7649

問題描述

乙個典型的大型專案,通常由眾多元件構成,這些元件之間複雜的編譯依賴於在構建整個系統時,是最讓人頭疼的地方之一。現在就有這樣的乙個大型專案,由n(n>1000)個元件構成,每個元件都是可以編譯的,但元件之間存在著編譯依賴,如元件n1依賴n2,即編譯n1時n2必須已經先編譯完成,否則n1不能完成編譯,但元件之間沒有迴圈依賴的問題。請設計一種快速演算法,能完成整個專案的編譯構建過程,並給出演算法的時間複雜度。

解題思路:

拓撲排序思想:

(1)從有向圖中選擇乙個沒有前驅(即入度為0)的頂點並且輸出它.  

(2)從網中刪去該頂點,並且刪去從該頂點發出的全部有向邊.  

(3)重複上述兩步,直到剩餘的網中不再存在沒有前趨的頂點為止.

其中,dag圖可採用鄰接矩陣或鄰接表來構造,構造其時間複雜度為o(e)(e邊的個數),拓撲排序過程中,有向圖無環,則每個頂點進一次棧、出一次棧,入度減1的操作在while語句中總共執行e次,所以總的時間複雜度為o(n+e)

百度面試題

有一根27厘公尺的細木桿,在第3厘公尺 7厘公尺 11厘公尺 17厘公尺 23厘公尺這五個位置上各有乙隻螞蟻。木桿很細,不能同時通過乙隻螞蟻。開始時,螞蟻的頭朝左還是朝右是任意的,它們只會朝前走或調頭,但不會後退。當任意兩隻螞蟻碰頭時,兩隻螞蟻會同時調頭朝反方向走。假設螞蟻們每秒鐘可以走一厘公尺的距...

百度面試題

一 選擇題 15分 共10題 1.任何乙個基於 比較 的內部排序的演算法,若對6個元素進行排序,則在最壞情況下所需的比較次數至少為 a 10 b 11 c 21 d 36 2.關係模型有三類完整性約束,定義外來鍵實現的是 完整性.a.實體完整性 b.參照完整性 c.使用者定義的完整性 d.實體完整性...

百度面試題

1.乙個int陣列,裡面資料無任何限制,要求求出所有這樣的數a i 其左邊的數都小於等於它,右邊的數都大於等於它。能否只用乙個額外陣列和少量其它空間實現。2.乙個檔案,內含一千萬行字串,每個字串在1k以內,要求找出所有相反的串對,如abc和cba。當時怎麼想的忘記了,現在重新思考一下,檔案的大小上限...