我們的目標是從乙個int的array中,找出最小值。
作為demo程式,我們先增加乙個類,用來模擬array,如下定義:
class再加入乙個計算所用時間的類,用來計算min/max函式所執行的時間carray
public carray(int
capacity)
public
void insert(int
value)
public
void
clear()
public
void
display()
, ", this
.array[i]));
}#region 統計函式
public
intmax()
public
intmin()
#endregion
class我們先來寫個最簡單的,沒有排序功能的demo程式,來看看當沒有排序時的效能:timing
public
void
stop()
public
void display(string
msg)
}
int count = 19999執行結果:;carray aryobj = new
carray(count);
random rnd = new
random(datetime.now.second);
for (var i = 0; i < count; i++)
aryobj.insert((
int)(rnd.nextdouble() * 100000) + 1
);timing t = new
timing();
t.start();
aryobj.min();
t.stop();
t.display(
"排序前min值
");
然後,我們再為這個carray編寫乙個排序功能,如下:
public然後修改主程式如下void
bubblesort()}}
sorted = true
;//新增加的乙個私有成員
}public
int min()//修改
int count = 19999執行結果圖:; carray aryobj = new
carray(count);
random rnd = new
random(datetime.now.second);
for (var i = 0; i < count; i++)
aryobj.insert((
int)(rnd.nextdouble() * 100000) + 1
); timing t = new
timing();
t.start();
aryobj.min();
t.stop();
t.display(
"排序前min值");
t.start();
aryobj.bubblesort();
t.stop();
t.display(
"氣泡排序");
t.start();
aryobj.min();
t.stop();
t.display(
"排序後min值
");
min函式的執行效率在排序前後相差了379倍。
有人肯定會說,這些排序演算法在c#中都已經被ms實現了,所以沒用!
C程式的編碼方式
編碼是用預先規定的方法將文字 數字或其它物件編成數碼。為保證編碼的正確性,編碼要規範化 標準化,即需有標準的編碼格式。可以肯定的說,在現代計算機中,窄字串已經不再使用 ascii 編碼了,因為 ascii 編碼只能顯示字母 數字等英文本元,對漢語 日語 韓語等其它地區的字元無能為力。對於窄字串,c語...
字元編碼對程式的影響及分析
今天在呼叫乙個動態庫的時候,使用到下面的語句 hmodule hdll loadlibrary filedir dlltest.dll 因為編譯環境選擇的是unicode字符集,所以當我上面的語句從乙個多位元組字符集的編譯環境複製過來後,出現了語法錯誤。語法錯誤的提示為 error c2664 lo...
如何判斷檔案的編碼方式
最近做東西需要知道檔案 txt,html.究竟是什麼編碼方式,不然讀取檔案內容可能出現亂碼 經過網上查詢發現兩種總結一下,方便自己也方便別人 通過判斷檔案頭,不過檔案頭不是必須的,所以有些檔案是沒有檔案頭的 ef bb bf utf 8 fe ff utf 16 ucs 2,little endia...