CentOS7安裝並配置gitlab
阿新 • • 發佈:2020-09-22
白名單 SPEC
Coding地址:https://lhbat.coding.net/public/baimingdan/baimingdan/git/files
作業0(5分)
//create.cpp #include <iostream> #include <stdlib.h> #include <time.h> using namespace std; int main(int argc, char* argv[]) { int number = atoi(argv[1]);//將命令列引數轉數字 srand((unsigned)time(NULL));for (int i = 0; i < number; i++) { cout << rand(); if(i!=number-1) cout << "\n"; } cout << endl; return 0; }
read.md文件如下:
readme.md |
|
作業1(10分)
執行“-wq < whitelist > output”可以看到,當資料量較少時IO操作佔比很大。
作業2(10分)
以biggerwhitelist和biggerq作為輸入,對作業1中選擇的程式碼再次進行profile,找到程式碼執行最“慢”的地方,截圖為證並文字說明。
可以看出,當資料量較大時main函式中的is_match函式下面的cout很耗時,很大原因是is_match函式效率不高。
作業3(10分)
根據作業2找到的最慢的地方,優化作業1中你選擇的程式碼,在保證輸出結果正確的前提下,減少老楊程式執行的時間。(優化後的程式碼需要你提交到git上,作為教師的判斷依據。優化後的程式的名字應該是better.cpp或者better.cs。)
地址:https://lhbat.coding.net/public/baimingdan/baimingdan/git/files
bool erfen(int t, int low, int high) { int mid; while (low<high) { mid = (high + low) / 2; if (w[mid] == t) { return true;//找到目標數字,成功 } else if (w[mid] > t) { high = mid - 1; } else if (w[mid] < t) { low = mid + 1; } } return false;//查詢失敗 }
作業4(5分)
對作業3優化後的程式碼進行profile,結果與作業2的結果做對比。畫表格並文字說明。
可以看出,經過優化後,當資料量較多時IO操作成為佔比較大的部分,這部分事無法避免的。
做業5(5分)
你覺得老楊的文件(readme),註釋和程式碼風格又哪些問題,該如何改進?
我覺得文件的內容略少,小白不容易懂,註釋掉的暫時不使用的程式碼可以刪掉,程式碼中的“t! = w[i]”應該講不等於作為一個整體。