幾道演算法相關面試題

2021-09-30 08:54:55 字數 760 閱讀 4649

1. 給你10臺機器,每個機器2個cpu,2g記憶體,現在已知在10億條記錄的資料庫裡執行一次查詢需要5秒,問用什麼方法能讓90%的查詢能在100毫秒以內返回結果。

2.乙個儲存有10000個url的文字檔案,刪除其中相同的url。 

請問這2題怎麼做,第二題我只能想出先排序的方法,那麼時間複雜度就是o(nlogn)了,有更好的方法麼

將每個uml對應到乙個整數空間上

對應法則可以是字元的全部編碼

也可以是部分,比如開始+中間+結束字元的對應

部分對應不能起到100%的精確判斷

程式設計之美》在csdn學生大本營上有乙個每日更新的主頁,每週都有

對一些有趣的演算法題的新解和思考,也匯集了不少面試求職過程中提

到演算法的故事。

1、第一題含義不明,不知那10億條記錄就只在資料庫裡,讓10個電腦去查詢?

還是10個電腦設計乙個替代資料庫查詢功能的系統,該系統能查詢10億個記錄?

2、第二題很簡單。

1)建立乙個 set或者hash_set的變數,用於記錄不重複的url。

2)逐行讀文字檔案,依次得到每個url;

3)每讀到乙個url,先在set/hash_set 變數中尋找是否有匹配的,如果沒有,將url插入到變數中。

set 使用的二叉樹結構查詢,10000個資料中查詢的話也不超過14次。hash_set使用雜湊表的方式,速度更快。

另:實際上第三步中不用查詢,直接向變數中加入記錄即可,如果有重覆記錄的話,會插入失敗的。如果查詢再插入,反而需要兩次搜尋過程。

幾道面試題

系統呼叫與函式的區別 從程式完成的功能來看,函式庫提供的函式通常是不需要作業系統的服務,函式是在使用者空間內執行的,除非函式涉及到i o操作等,一般是不會切到核心態的。系統呼叫是要求作業系統為使用者提供程序,提供某種服務,通常是涉及系統的硬體資源和一些敏感的軟體資源等。函式庫的函式,尤其與輸入輸出相...

幾道面試題

1 下列程式片段執行時間排序 1 for uint i 0 i 1024 i char url char malloc 4096 memset url,0x0,4096 free url 2 for uint i 0 i 1024 i 3 char url char malloc 4096 for ...

幾道面試題

q 您在什麼情況下會用到虛方法?它與介面有什麼不同?q override與過載有什麼區別?q 值型別與引用型別有什麼區別?q 怎樣理解靜態變數?q 向伺服器傳送請求有幾種方式?q datareader與dataset有什麼區別?q 用.net做b s結構的系統,您是用幾層結構來開發,每一層之間的關係...