這邊要來介紹搜尋及雜湊演算法,搜尋指的是從資料檔案找出滿足某些條件的記錄動作,用以搜尋的條件鍵稱為鍵值(key),如同排序所用的鍵值一樣。 而判斷一個搜尋法的好...
今天來講二分跟內差搜尋法 二分搜尋法(Binary search) 又稱對數搜尋,如果搜尋的資料已經排好即可用二分搜尋法來進行搜尋。它是將資料分割成兩等份,再比...
雜湊法是利用雜湊函數來計算一個鍵值所對應的位址,進而建立雜湊表格,然後依賴雜湊函數來搜尋找到各鍵值存放在表格中的位址,搜尋速度與資料多少無關,在沒有碰撞和溢位下...
在雜湊法中,當識別字要放入某bucket時,若該bucket已滿,則發生溢位(overflow)情況,那當雜湊法的理想狀況是所有的資料經過雜湊函數後都得到不同的...
陣列與鏈結串列 在第四,第五天的時候有講到陣列和鏈結串列,它們都是相當重要的結構化資料型態(Structured Data Type),也都是線性串列的應用,線...
單向鏈結串列(Singly linked list) 產生一個鏈結的方式,要先制定一個結構資料型態,然後在結構中定義其資料型態。 鏈結串列節點定義 這邊會拿Ru...
前面有介紹過陣列的概念,這邊來做個實作的範例。 陣列實作堆疊 堆疊和佇列都是屬於抽象資料型態 堆疊結構時常被用來解決問題,例:遞迴呼叫、副程式的呼叫。 佇列在電...
河內塔演算法(Tower of Hanoil) 法國數學家Lucas發明了河內塔這個數學問題,典型使用遞迴式與堆疊來解決此問題。古越南某間是廟有三根銀棒(有些故...
八皇后(Eight Queens) 在西洋棋中的皇后可以在沒有限定一步走幾格的前提下,對棋盤中的其他棋子直吃、橫吃、對角斜吃(左右斜吃),而後放入新皇后,再放入...
陣列實作佇列 以陣列結構實作佇列的好處是在演算法算很簡單,但跟堆疊不同之處是需要兩種動作:加入與刪除,假設front指向佇列的前端,rear向佇列的尾端,缺點在...