查詢演算法練習一(線性查詢 折半查詢)

2021-07-14 16:19:25 字數 905 閱讀 2293

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 ...