7 1 順序表查詢

2022-08-01 05:30:17 字數 1695 閱讀 1899

順序查詢(sequential search)又叫線性查詢,是最基本的查詢技術,它的查詢過程是:從表中第乙個(或者最後乙個)記錄開始,逐個進行記錄的關鍵字和給定值比較,若某個記錄的關鍵字和給定值相等,則查詢成功,找到所查的記錄;如果直到最後乙個(或者第乙個)記錄,其關鍵字和估計值比較都不等時,則表中沒有所查的記錄,查詢不成功。

具體**為:

<?php 

header("content-type:text/html;charset=utf-8");/**

* 順序查詢操作操作

* *包括

* 1.初始化 __contruct()

* 2.普通順序查詢 search_none()

* 3.有哨兵順序查詢 search() */

class

sequential_search

}//普通順序查詢

public

function search_none($key

) }

return 0;

}//有哨兵順序查詢

public

function search($key

)

return

$i; //

返回0則說明查詢失敗}}

?>

實現上述函式:

<?php 

header("content-type:text/html;charset=utf-8");

include "sequential_search.class.php";

$a = array("小","林","子","奮","鬥","的","點","滴");

$sequential_search = new sequential_search($a

);echo "初始化陣列:";

echo "

";print_r($sequential_search

);echo "

";echo "

";$key = $sequential_search->search_none("林");

echo "普通順序查詢「林」在陣列中的位置:";

echo "

";echo

$key

;echo "

";echo "

";$key = $sequential_search->search("林");

echo "此時陣列為:";

echo "

";print_r($sequential_search

);echo "

";echo "

";echo "有哨兵順序查詢「林」在陣列中的位置:";

echo "

";echo

$key

;?>

最後的實現結果為:

對於順序查詢演算法來說,查詢成功最好的情況就是在第乙個位置就找到了,演算法的時間複雜度為o(1),最壞的情況是在最後乙個位置才找到,需要n次比較,時間複雜度為o(n),當查詢不成功時,需要n+1次比較,時間複雜度為o(n)。關鍵字在任何位置的概率是相同的,所以平均查詢次數是(n+1)/2,所以最終的時間複雜度還是o(n)。

順序表查詢

一 查詢概論 1 查詢表 查詢表是由同一型別的資料元素或記錄構成的集合。2 關鍵字 關鍵字是資料元素中某個資料項的值,又稱為鍵值,用它可以標識乙個資料元素。也可以標識乙個記錄的某個資料項 字段 稱為關鍵碼。若此關鍵字可以唯一標識乙個記錄,則稱此關鍵字為主關鍵字,所以對於不同的記錄,其主關鍵字是不相同...

順序表查詢

順序查詢又叫線性查詢,是最基本的查詢技術,它的查詢過程是 從表中第乙個 或最後乙個 記錄開始逐個進行記錄的關鍵字和給定值比較,若某個記錄的關鍵字和給定值相等,則查詢成功 如果直到最後乙個 或第乙個 記錄,其關鍵字和給定值比較都不相等時,則表中沒有所查的記錄,查詢不成功。順序查詢的演算法如下 順序查詢...

順序表查詢

順序查詢 sequential search 又叫線性查詢,是最基本的查詢技術,它的查詢過程是 從表中第乙個 或最後乙個 記錄開始,逐個進行記錄的關鍵字和給定值比較,若某個記錄的關鍵字和給定值相等,則查詢成功,找到所查的記錄 如果直到最後乙個 或第乙個 記錄,其關鍵字和給定值比較都不等時,則表中沒有...