[C#]演算法-氣泡排序法(Bubble Sort)
這個排序演算法主要是利用二個迴圈,一個是要執行的回合數,另一個是真正比對數列資料,一次比較相臨的二個數,大的放右側,小的放左側,則可得最後一個數為最大數,則此數不再比較,以此類推,可以排出一個左小右大的數列。
演算過程的畫面如下程式畫面:
要排列的數列串是2,3,8,1,5,9,10,12,14

這是執行的過程及結果,一共執行了八回合
其中紅色字為需要交換字、藍色是正在比較的二個數、綠色是已排好的數,不會再進行比較
ps.點擊下圖可以放大
這個排序演算法主要是利用二個迴圈,一個是要執行的回合數,另一個是真正比對數列資料,一次比較相臨的二個數,大的放右側,小的放左側,則可得最後一個數為最大數,則此數不再比較,以此類推,可以排出一個左小右大的數列。
演算過程的畫面如下程式畫面:
要排列的數列串是2,3,8,1,5,9,10,12,14

這是執行的過程及結果,一共執行了八回合
其中紅色字為需要交換字、藍色是正在比較的二個數、綠色是已排好的數,不會再進行比較
ps.點擊下圖可以放大
二元搜尋法需要先把要搜尋的數列先排序,由小到大,規則是先取前後二索引數,相加除二,也就是取中間數當索引值,然後跟要搜尋的數字做比較,如果一樣就是找到了,如果中間的數比要搜尋的數大,代表要搜尋的數在左邊數列,右邊數列則放棄,相反之,如果中間數比要搜尋的數小,代表要搜尋的數在右邊數列,左邊數列則放棄。
演算過程的畫面如下程式畫面:
數列串是1,2,3,4,5,6,7,8,9,10,11,12,然後要查詢4這個數字


演算法有很多種,包含搜尋、排序等等,很多人都接觸過,在比較龐大的數學運算上真的是十分重要,可以節省很多時間及資源,像是Google、Yahoo 搜尋,都有自行的算法來應付大量的搜尋及資料。
底下先介紹一個常見的搜尋演算法循序搜尋法(Linear/Sequential Search),觀念十分簡單,也常用到,就是直接用迴圈一個個去比對,找到時就跳出(回傳)。
演算過程的畫面如下程式畫面:
數列串是1,2,3,4,5,6,7,然後要查詢5這個數字


如果使用VisualStudio Express 2008開發軟體的話,想要發佈給其它人使用,這倒是個麻煩,
可以利用內建的OneClick方式封裝,或是利用功能強大的InstallShield Express來做,不過InstallShield並非免費,
CreateInstall Free是一套免費的封裝Install的軟體,沒有註冊的狀況下,在安裝時下方有會提示CreateInstall Free字樣,
它不但可以把程式整個封裝進入一個setup.exe的執行檔,還可以對內容進行壓縮、放入startup目錄,
對付一些簡單的程式的封裝是個很好的選擇,不過它也不是完全沒有缺點,
像是沒法子自動檢查是否存在Framework .net 等。
Java的Thread是利用繼承Thread或是實作Runable來實現的,而C#確是不一樣的,
C#利用一個new System.Threading.Thread物件,建構時傳入想要在執行緒裡動作的事件,
啟動方法跟Java一樣,利用Start()來開始這個執行序,
System.Threading.Thread t = new System.Threading.Thread(要執行的Function名稱);
啟動方式
t.Start();
那如果有參數要傳入呢?
可以撰寫一個Class,先建構及設定好需要的參數,再把這個class實作的物件及方法傳入實作的System.Threading.Thread物件裡
就可以啦
Object x = new Object();
System.Threading.Thread t = new System.Threading.Thread(x.方法);
這裡有一個範例可以參考一下
先建立一個Class,名叫thread1
利用無窮迴圈讓內容一直跑,再利用Sleep(毫秒)來使其停一秒再執行。