思路:首先從陣列中間的數把陣列分成兩部分,如果查詢的數比中間的數大,說明接下來需要查詢右邊的部分,令中間的的下標+1為下一次開始查詢的開始位置,再從low到high之間查詢,一直迴圈。
[root@bogon code]# cat erfen.c
#include
int work(int x,int a,int len)
return -1; //找不到
}int main()
; int n;
printf("please input a search num\n");
scanf("%d",&n);
int t=work(n,a,10);
if(t==-1)
printf("no this num\n");
else
printf("this num in %d\n",t);
return0;}
[root@bogon code]# gcc erfen.c
[root@bogon code]# ./a.out
please input a search num
7this num in 6
[root@bogon code]#
二分搜尋演算法
今天我勉強搞懂了二分查詢演算法,我覺得很有收穫,這是個不錯的演算法,希望還不知道 不懂二分演算法的朋友能看看!二分查詢 二分查詢的前提是陣列一定是有序的 傳入乙個陣列 t 傳入乙個查詢元素 t key 返回查詢結果 class myutil else if key.compareto x mid 0...
分治演算法 二分搜尋
一.演算法簡介 以有序表表示靜態查詢表時,查詢函式可以用二分查詢 binary search orhalf intervalsearch 來實現。這種演算法基於分治。二 複雜度分析 二分查詢的時間複雜度是 o log n 最壞情況下的時間複雜度是 o n 三 演算法思想及步驟 二分查詢 binary...
演算法小結 二分搜尋
二分搜尋 二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功 否則利用中間位置記錄將表...