1. 程式人生 > >阿里二面(3.28)

阿里二面(3.28)

1、連結串列和陣列的區別,時間複雜度(說插入,刪除,搜尋的)
Arraylist的實現原理
2、雜湊表原理及時間複雜度(根據關鍵碼值(Key Value)而直接進行訪問的資料結構,以資料中每個元素的關鍵字K為自變數,通過雜湊函式H(k)計算出函式值,以該函式值作為一塊連續儲存空間的的單元地址,將該元素儲存到函式值對應的單元中。雜湊表儲存的是鍵值對,其查詢的時間複雜度與元素數量多少無關,雜湊表在查詢元素時是通過計算雜湊碼值來定位元素的位置從而直接訪問元素的,因此,雜湊表查詢的時間複雜度為O(1)。 http://blog.csdn.net/chenhuajie123/article/details/9210529


雜湊表處理衝突主要有開放定址法、再雜湊法、鏈地址法(拉鍊法)和建立一個公共溢位區四種方法。

通過構造效能良好的雜湊函式,可以減少衝突,但一般不可能完全避免衝突,因此解決衝突是雜湊法的另一個關鍵問題。建立雜湊表和查詢雜湊表都會遇到衝突,兩種情況下解決衝突的方法應該一致。)
3、二叉搜尋樹(根比左孩子大,右孩子比根大),及給left,right,parent,value,找比k值僅僅只大一的那個數
好傷心,沒過吧。。最後問我有什麼要問的。。我說給個建議,他說沒有建議。。QAQ,而且沒有專案可以說。。簡直要死。。

--------------------------------
1、作業系統:程序排程演算法

http://blog.csdn.net/dc_726/article/details/8001783
批處理系統:
FIFO(先進先出)演算法服務質量不佳,容易引起作業使用者不滿
SCBF–Shortest CPU Burst First(短程序優先)可獲得較好的排程效能,但難以準確地知道下一個CPU執行期,而只能根據每一個程序的執行歷史來預測。
分時系統:(時間片輪轉)
簡單輪轉法:系統將所有就緒程序按FIFO規則排隊,按一定的時間間隔把處理機分配給佇列中的程序。這樣,就緒佇列中所有程序均可獲得一個時間片的處理機而執行。
多級佇列方法:將系統中所有程序分成若干類,每類為一級。(優先順序問題)
2、jni:so檔案是什麼
linux系統下的檔案,安卓平臺是從linux系統下改進過來的,所以會有後綴為.so的檔案
共享庫(動態庫),類似於DLL。節約資源,加快速度,程式碼升級簡化。