循序搜寻法(使用卫兵)
說明
搜尋的目的,是在「已排序的資料」中尋找指定的資料,而當中循序搜尋是最基本的搜尋法,只要從資料開頭尋找到最後,看看是否找到資料即可。
解法
初學者看到循序搜尋,多數都會使用以下的方式來進行搜尋:
while(i < MAX) { if(number[i] == k) { printf("找到指定值"); break; } i++;}public class Search { public static int linear(int[] number, int des) { int[] tmp = new int[number.length + 1]; for(int i = 1; i < tmp.length; i++) { tmp[i] = number[i-1]; } tmp[0] = des; int i = number.length; while(tmp[i] != tmp[0]) i--; return i - 1; } public static void main(String[] args) { int[] number = {1, 2, 3, 4, 6, 7, 8}; int find = Search.linear(number, 3); System.out.println(find >= 0 ? "找到數值於索引" + find : "找不到數值"); }}