百度笔试题整理
周六上午的百度,休息了一個周末。今天來整理一下。還沒收到面試通知。【不管怎么樣,最終還是拿到了百度offer。雖然經歷了很多,調到深圳,又調回北京,但是還是感謝】
1、假設一個大小為100億個數據的數組,該數組是從小到大排好序的,現在該數組分成若干段,每個段的數據長度小于20「也就是說:題目并沒有說每段數據的size 相同,只是說每個段的 size < 20 而已」,然后將每段的數據進行亂序(即:段內數據亂序),形成一個新數組。請寫一個算法,將所有數據從小到大進行排序,并說明時間復雜度。
題目就是這樣子的。我當時寫的方法是如果小段數據內部的最大元素和最小元素的差值提前知道不會超過100的話,【100>20*log20,因為20*log20是對數組排序的時間復雜度】那么把小段數據的大小減去最小元素,然后放到一個長度為100的數組中。然后把元素按100長數組的順序取出來,再加上最小元素的大小,就是排序之后的位置。如果元素有重復,可以再開一個長100的數組記錄元素出現的次數。
這個方法的好處是需要O(100)*2的時間復雜度。需要O(100)的空間復雜度。相比排序之下,這個復雜度好像有點高。
看到網上有一個其他人的解法:維護一個20的小根堆,每次從中拿出最小的元素,然后加入一個新元素。每次加入新元素的調整堆的時間復雜度為O(log20)。
上面網友的這個算法,是一個排序的思想,每個元素的調整不超過O(log20)。那么整體的時間復雜度為N*O(log20)。這個方法很好。
2、http協議是工作在應用層的協議。
數據鏈路層 ATM,stp,vtp,VLAN PPP 網絡層 ,IPV6 IPX,OSPF,EIGRP RIP 傳輸層 ,UDP TCP 應用層 WINS HTTP ,FTP TELNET,TFTP,DNS同時分辨一下arp協議。ARP報文是由以太網幀進行封裝傳輸的。沒有封裝進IP包。所以arp協議是工作在數據鏈路層的。TCP/IP模型中,將ARP協議放在網絡層,而OSI七層協議里剛將其看作數據鏈路層里的協議
總結
- 上一篇: 计算机的分类
- 下一篇: QuickCHM V2.6注册码