動態查找與靜態查找的區分


1、靜態查找

首先無論是靜態查找還是動態查找,都要有查找的對象,也就是包含很多同類型數據的“表”,這個“表”可以理解為一個由同類型數據元素組成的一個“集合”,該集合可以用各種容器來存儲,例如數組、鏈表、樹等,我們統稱這些存儲數據的數據結構為——查找表。可見,查找表有時是我們傳統意義的表,有時候是很復雜的一種結構。

靜態查找就是我們平時概念中的查找,是“真正的查找”。之所以說靜態查找是真正的查找,因為在靜態查找過程中僅僅是執行“查找”的操作,即:(1)查看某特定的關鍵字是否在表中(判斷性查找);(2)檢索某特定關鍵字數據元素的各種屬性(檢索性查找)。這兩種操作都只是獲取已經存在的一個表中的數據信息,不對表的數據元素和結構進行任何改變,這就是所謂的靜態查找。

常見的靜態查找(表):順序查找、二分法查找、索引順序查找(分塊查找)、斐波那契查找等

 

2、動態查找

看到上面靜態查找的概念,動態查找就很好理解了,個人總覺得動態查找不像是“查找”,動態查找它更像是一個對表進行“創建、擴充、修改、刪除”的過程。動態查找的過程中對表的操作會多兩個動作:(1)首先也有一個“判斷性查找”的過程,如果某特定的關鍵字在表中不存在,則按照一定的規則將其插入表中;(2)如果已經存在,則可以對其執行刪除操作。動態查找的過程雖然只是多了“插入”和“刪除”的操作,但是在對具體的表執行這兩種操作時,往往並不是那么簡單。

常見的動態查找(表):各種樹(二叉搜索樹、AVL、B/B+樹、紅黑樹等等)、哈希表


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM