public class searchalgorithm ; // 輸入資料陣列
//測試資料有序
public static int binarysearch_data = ;
public static void main(string args)
/*** 線性查詢
* 演算法思想:
* 從一端開始逐一檢查每個元素,直到找到所需元素的過程。
* 線性查詢又稱為順序查詢,如果查詢池是某種型別的乙個表,比如乙個陣列,簡單的查詢方法是從表頭開始,
* 一次將每乙個值與目標元素進行比較,最後,或者查詢到目標,或者達到表尾,而目標不存在於組中,這個方法稱為線性查詢。
* */
private static void linearsearch(int data , int key)
}if(count == length)
return;
}/**
* 折半查詢法也稱為二分查詢法
* 演算法思想:
* 它充分利用了元素間的次序關係,採用分治策略,可在最壞的情況下用o(log n)完成搜尋任務。
* 它的基本思想是,將n個元素分成個數大致相同的兩半,取a[n/2]與欲查詢的x作比較,如果x=a[n/2]則找到x,演算法終止。
* 演算法要求:
* 1.必須採用順序儲存結構
* 2.必須按關鍵字大小有序排列。
* */
private static void binarysearch(int data , int key)else if(key > data[mid])else
mid = (low + high) / 2;
}//查詢失敗
system.out.println("not found!");
return;}}
查詢(一) 線性查詢之順序查詢和折半查詢
在我們的生活中,無處不存在著查詢,比如找一下班裡哪個mm最pl,猜一猜mm的芳齡.對的這些都是查詢。在我們的演算法中,有一種叫做線性查詢。分為 順序查詢。折半查詢。查詢有兩種形態 分為 破壞性查詢,比如有一群mm,我猜她們的年齡,第一位猜到了是23 此時這位mm已經從我腦海裡面的mmlist中rem...
查詢演算法 折半查詢
本小節知識點 1.掌握 基本思路 2.掌握 實現步驟 3.了解 練習 1.基本思路 在有序表中,取中間元素作為比較物件,若給定值與中間元素的要查詢的數相等,則查詢成功 若給定值小於中間元素的要查詢的數,則在中間元素的左半區繼續查詢 若給定值大於中間元素的要查詢的數,則在中間元素的右半區繼續查詢。不斷...
查詢演算法 折半查詢演算法
折半查詢演算法 binary search param a 乙個有序的集合 本次為由小到大 param x 需要查詢的值 ps 首先使用折半演算法的時候 集合必須是有序的 eg a 1,3,5,7,9 x 3 a mid low height 1,3,5,7,9 2 0 1 1,3 0 1 1 3 ...