程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 8.1 查找概論

8.1 查找概論

編輯:關於C語言

    查找表:由同一類型的數據元素或記錄)構成的集合,也就是所有需要被查的數據所在的集合,我們給一個統稱叫查找表。

    關鍵字:數據元素中某個數據項的值,又稱為鍵值,用它可以標識不一定唯一)一個數據元素。也可以表示一個記錄的某個數據項字段),我們稱它為關鍵嗎。

    主關鍵字:若此關鍵字能唯一的標識一個記錄,則稱此關鍵字為主關鍵字,這也就意味著,對不同的記錄,其主關鍵字不相同。主關鍵字所在的數據項成為主關鍵碼。

    次關鍵字:可以識別多個數據元素或記錄)的關鍵字,我們成為次關鍵字。次關鍵字可以理解為不以唯一標識一個數據元素或記錄)的關鍵字,它對應的數據項就是次關鍵碼。

    查找:根據某個給定的值,在查找表中確定一個其關鍵字等於給定值的數據元素或記錄)。若表中存在這樣的一個記錄,則稱查找是成功的,此時查找的結果是給出整個記錄的信息或者指示該記錄在查找表中的位置哈希表查找)。若表中不存在關鍵字等於給定的值,則稱查找不成功,此時查找的結果可以給出一個“空”記錄或“空”指針。

    查找表的分類:靜態查找表和動態查找表。

靜態查找表:只做查找操作的查找表。它的主要操作有:

1)查詢某個“特定的”數據元素是否在查找表中。

2)檢索某個“特定的”數據元素及其各種屬性。

    動態表查找:在查找的過程中同時插入不存在的數據元素,或者從查找表中刪除已經存在的某個數據元素。動態表的查找操作:

1)查找時插入數據元素。

2)查找時刪除數據元素。

    為了提高查找效率,我們需要專門為查找操作設置數據機構,這種面向查找操作的數據結構稱為查找結構。

    從邏輯上來說,查找所基於的數據結構是集合,集合中的記錄之間沒有本質關系。可是要想獲得較高的查找性能,我們就能不改變數據元素之間的關系,在存儲時可以將查找表組織成表、樹結構。

    例如:對於靜態查找表來說,我們不妨應用線性表結構來組織數據,這樣可以使用順序查找算法,如果再對主關鍵字排序,則可以應用折半查找計數進行高效的查找。

    如果需要動態查找,則會復雜一些,可以考慮二叉排序樹的查找計數。

    另外,可以使用散列計數來解決一下查找問題。

 

本文出自 “李海川” 博客,請務必保留此出處http://lihaichuan.blog.51cto.com/498079/1282306

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved