查找算法(一)順序查找


順序查找(線性查找)

最基本的查找技術,過程:從表中的第一個(或最后一個)記錄開始,逐個進行記錄的關鍵字和給定值比較,若某個記錄的關鍵字和給定值相等,則查找成功,找到所查的記錄;如果直到最后一個(或第一個)記錄,其關鍵字和給定值比較都不等時,則表中沒有多查的記錄,查找不成功。

代碼實現
int SequenceSearch(int a[], int value){ for(int i = 0; i < a.length; i++){ if(a[i] == value){ return i; } } return -1; } 
優化:每次循環都需要對i是否越界進行判斷。因此可以設置一個哨兵
int SequenceSearch(int a[], int value){ int[] b = new int[a.length + 1]; b[0] = value; for(int i = 0; i < a.length; i++){ b[i + 1] = a[i]; } int j = a.length; while(b[j] != value){ j--; } return j; } 

說明:順序查找適合於存儲結構為順序存儲或鏈式存儲的線性表 復雜度分析:O(n)


免責聲明!

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



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