查找算法(一)順序查找

順序查找(線性查找)

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

代碼實現
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)spa

相關文章
相關標籤/搜索