首先宣告乙個概念:查詢的基本方法可以分為兩大類,即比較式查詢法和計算機式。其中比較式查詢法有可以分為基於線性表的查詢法和基於樹的查詢法,而計算查詢法也稱為也稱為hash(雜湊)查詢法。
查詢-是最常見的資料操作之一,資料結構核心運算之一,其重要性不言而喻。順序查詢是人們最熟悉的查詢策略,對於小規模的資料,順序查詢是個不錯的選擇。
1.順序查詢:
核心:從資料的第乙個元素開始,依次比較,直到找到目標資料或查詢失敗。
1.從表中的第乙個元素開始,依次與關鍵字比較。
2.若某個元素匹配關鍵字,則查詢成功。
3.若查詢到最後乙個元素還未匹配關鍵字,則查詢失敗。
2.時間複雜度:
順序查詢平均關鍵字匹配次數為表長的一半,其時間複雜度為o(n)。
3.順序查詢的評估:
順序查詢的優點是對錶無要求,插入資料可在o(1)內完成。缺點是時間複雜度較大,資料規模較大時,效率較低。
解法一:使用基本的返回具體在表中的位置(沒有設定監視哨)
public class seqsearch ;
scanner scanner = new scanner(system.in);
while(true)
else
} }
public static int getindex(int data, int k)
return i;
}}
不返回位置:
public class seqsearch ;
scanner scanner = new scanner(system.in);
while(true)
else
} }public static boolean getindex(int data, int k)
} return false;
}}
解法二(設定監視哨)
public class seqsearch2 ;
scanner scanner = new scanner(system.in);
while(true)else
} }public static int getindex(int data, int k)
if(i >= 1)else
}}
線性表的查詢法 折半查詢(思路與實現)
首先宣告乙個概念 查詢的基本方法可以分為兩大類,即比較式查詢法和計算機式。其中比較式查詢法有可以分為基於線性表的查詢法和基於樹的查詢法,而計算查詢法也稱為也稱為hash 雜湊 查詢法。而基於線性表的查詢法具體可分為順序查詢法 折半查詢法以及分塊查詢法 現在要講的就是折半查詢法 二分查詢法 二叉判定數...
基於線性表的查詢法
順序結構資料型別的定義 define maxsize 10 typedef struct record typedef struct recordlist 順序查詢演算法思想 在表的一端設定乙個稱為 監視哨 的附加單元,存放要查詢元素的關鍵字。從表的另一端開始查詢,如果在 監視哨 找到要查詢元素的關...
資料結構之查詢 基於線性表的查詢法
用所給的元素與列表的中的各個元素進行比較,若相等返回索引,否則返回錯誤資訊。假設列表長度為 n n 那麼查詢第 i role presentation style position relative i i個元素時需進行n i 1 n i 1 次比較,即ci n i 1c i n i 1,又假設查詢...