按照題目要求:
那麼用C語言構建思路很明顯:
輸出名單(構建函數)python
(選擇將一些必要數據例如:已經發出請求的個數和已經發現的黑客個數及其hack記錄名單,設爲全局變量,以減小一些在函數中的傳遞調用。)git
檢查Request.txt是否已經在該目錄下,檢查完畢後,編譯運行:
打開output.txt:
第二次做業代碼: (但願結果正確Orz。)
hacklistgithub
吐槽: - 建立了26*26*26*26的記錄空間,可能會佔據太多無用空間; - 只適用於四個小寫字母的用戶名,對於更長或者使用更多其它字符的用戶名可能會超出內存範圍,不具備拓展性。 新的想法: 先另外建立一個arrange.txt文件,將名單按照請求者名稱按照 字典序(ASCLL碼大小) 從新排序輸入到該文件中;再調用該文件,重定向,將屬於同一個請求者的請求集中處理,判斷爲黑客後輸出到ouput.txt。 該想法的優勢: 不須要另開臨時內存記錄,減小了沒必要要的無用空間佔用,也避免了請求者名稱長度不定長或者使用特殊字符的特殊狀況。 缺點: - 該方法操做複雜,在排序時和判斷時可能須要對文檔中的光標進行移動(調用fseek函數,保證偏移量便可) - 效率較低,尤爲是在數據極大(超過萬或十萬)的狀況下,排序可能須要考慮快排以減小計算時間,但也必須等到全部人排序結束後纔開始判斷。 實現:暫無。(亦或許使用python的字典和內置函數實現更快)