binary search
折半查詢又稱二分查詢,要求資料序列呈線性結構,即先排序,在查詢。可以明顯的提高查詢速度,其流程如下:
預設陣列為a;需查詢的值為x;
首先設定3個變數low、mid、high,分別儲存陣列元素開始、中間和末尾元素的序號。接著進行以下判斷。
1:如果陣列中序號為mid的值與需查詢的值相等,則表明已經找到了資料,返回該序列號mid;
2:如果需查詢的值x3:如果需查詢的值x>a[mid];則捨棄low至mid之間的資料,繼續查詢mid+1至high之間的資料;
4:逐步迴圈,如果到low>hing時仍未找到資料x,則表示陣列中無此資料;
#include#include#include#define size 10
void quicksort(int *a,int l,int r)
return -1;
}int main()
{ int x,n,i;
int shuzu[size];
srand(time(null));
for(i=0;i
查詢演算法 折半查詢
本小節知識點 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 ...
查詢之折半查詢
二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功 否則利用中間位置記錄將表分成前 後...