這個排序演算法主要是利用二個迴圈,一個是要執行的回合數,另一個是真正比對數列資料,一次比較相臨的二個數,大的放右側,小的放左側,則可得最後一個數為最大數,則此數不再比較,以此類推,可以排出一個左小右大的數列。
演算過程的畫面如下程式畫面:
要排列的數列串是2,3,8,1,5,9,10,12,14
這是執行的過程及結果,一共執行了八回合
其中紅色字為需要交換字、藍色是正在比較的二個數、綠色是已排好的數,不會再進行比較
這個排序演算法主要是利用二個迴圈,一個是要執行的回合數,另一個是真正比對數列資料,一次比較相臨的二個數,大的放右側,小的放左側,則可得最後一個數為最大數,則此數不再比較,以此類推,可以排出一個左小右大的數列。
演算過程的畫面如下程式畫面:
要排列的數列串是2,3,8,1,5,9,10,12,14
這是執行的過程及結果,一共執行了八回合
其中紅色字為需要交換字、藍色是正在比較的二個數、綠色是已排好的數,不會再進行比較
之前提供過C#版本的搜尋演算法循序搜尋法(Linear/Sequential-Search)及二元搜尋法(Binary-Search),現在這是由Java撰寫而成的,整體來講是一樣的。
就是直接用迴圈一個個去比對,找到時就跳出。
需要先把要搜尋的數列先排序,由小到大,規則是先取前後二索引數,相加除二,也就是取中間數當索引值,然後跟要搜尋的數字做比較,如果一樣就是找到了,如果中間的數比要搜尋的數大,代表要搜尋的數在左邊數列,右邊數列則放棄,相反之,如果中間數比要搜尋的數小,代表要搜尋的數在右邊數列,左邊數列則放棄
執行結果如下:
結果的第一次的搜尋是循序搜尋,第二次是二元搜尋
第二個範例
星海爭霸在多年以前就有人把地圖改成防衛大戰的方式來進行遊戲,而且還可以多人一起聯防,Roboe-Defense這遊戲跟星海的防衛大戰有點像,而且可以昇級及購買更高等級的防具來防守,很平凡但是十分耐玩的遊戲。
Free版跟付費版基本上不太有差別,也沒有時間限制,主要的差別是多了二張新地圖?無限升級的獎勵、無限的難度水平、能獲得的分數來購買技術,免費版的會在這方面比較難取得,會越玩越不容易過關。
價錢大約2.99美元,92元台幣左右,十分划算,值得推薦。
遊戲畫面如下:
二元搜尋法需要先把要搜尋的數列先排序,由小到大,規則是先取前後二索引數,相加除二,也就是取中間數當索引值,然後跟要搜尋的數字做比較,如果一樣就是找到了,如果中間的數比要搜尋的數大,代表要搜尋的數在左邊數列,右邊數列則放棄,相反之,如果中間數比要搜尋的數小,代表要搜尋的數在右邊數列,左邊數列則放棄。
演算過程的畫面如下程式畫面:
數列串是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這個數字