面試有關問題:給你一個文字檔,裡面儲存了一億個QQ號,請用程式將其由小到大排序,汗呀!

來源:互聯網
上載者:User
面試問題:給你一個文字檔,裡面儲存了一億個QQ號,請用程式將其由小到大排序,汗呀!..
面試問題:給你一個文字檔,裡面儲存了一億個QQ號,請用程式將其由小到大排序,汗呀!..
求高手講解思路!
還有其它問題:
比如Memcache的運行機制,它的工作原理它有什麼優缺點!
現有一個庫存100件的產品要進行秒殺,在秒殺過程中的秒殺人數遠遠超過庫存,請問你將如何處理,應該注意什麼問題!
請談談你對Mysql的最佳化的見解,或者說如果讓你設計一個資料庫,你將怎樣設計並最佳化!
有高手嗎,今天面試都自己認為都答得不太理想,求指教,還有下面的面試!
小弟的剛剛被裁員,本來就冬天,真的好冷啊!


------解決方案--------------------
排序的問題想不出來什麼好辦法,有沒有更具體的限制條件,比如已耗用時間和記憶體?
如果都不限制直接sort函數就行,裡面是用的快速排序法(quicksort),理論上的效率應該是最高的,況且人家是native code,怎麼也比php代碼裡類比一個排序演算法快。

memcache的運行機制是使用職守進程開闢一塊記憶體空間用來儲存key/value資料,所有的請求和應用都共用這些資料。優點是存取速度快,適合用來緩衝頻繁讀寫的資料。缺點是佔用記憶體,同時只能通過key檢索,無法進行關係查詢(SQL等)。

要保證原子操作,使用一定的鎖機制防止多個請求同時操作一個資料造成效果與預期不符。

mysql資料庫最佳化主要是索引和分表,為了效能可以為所有需要排序和檢索的欄位建立索引,並通過水平或垂直分表方式提高效率。
------解決方案--------------------
目的肯定不是讓你投機,匯入資料庫,建索引匯出,不過可以提一下


遍曆一遍,將號碼按大小,寫入合適的檔案。。。比如約定10萬一個號碼段

比如10,000,寫在第0個檔案,100,000,001,屬於第1K個檔案裡面

排序每一個檔案資料,拼接檔案

排序的時候,如果檔案較大,這雷根據檔案大小,大概能估計號碼數量級的。。如果號碼量少,可選擇快排,否則,

建立一個10萬的數組,再次遍曆,arr[qqnum-i*100000]+1;

遍曆數組,依數組值,增量寫入號碼即可

複雜度是O(n),O(nlogn)之間
------解決方案--------------------
這面試題有點眼熟啊,演算法板塊貌似討論過,所以我回答用bitmap,空間換時間。
而且實際要做可能需要分段處理,比如5-7位的qq直接bit hash,7-10位的bit hash值 + 1000000
PHP code
";                                                                                                                        $i++;}?>
------解決方案--------------------
探討

這面試題有點眼熟啊,演算法板塊貌似討論過,所以我回答用bitmap,空間換時間。
而且實際要做可能需要分段處理,比如5-7位的qq直接bit hash,7-10位的bit hash值 + 1000000
PHP code
set_time_limit(0);
//5-7位qq
$s = '0';
$s{9999999} = 1;
$s{22334} = 1;
……

------解決方案--------------------
探討

跟編程珠璣裡面的排序電話號碼道理應該是一樣的.1億個qq號,就需要一億個位,大概是11MB
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.