有序陣列:a=
二分查詢:首先在陣列中找到中間位置的陣列下標mid=(start+end)/2,將所要找的數x與mid進行比較:
若x>mid,則要找的數在後半部分,所以令start=mid+1
若x重複以上步驟,直到找到x=mid
**實現如下:
#include
#include
#pragma warning (disable:4996)
intbinsearch
(int _x,
int a,
int num)
else
if(_x < a[mid]
)else
return mid;
//返回值為陣列下標
}return-1
;//找到所要找的數,即返回mid;否則返回值為-1.
}int
main()
;int num =
sizeof
(a)/
sizeof
(a[0])
;//陣列長度
int x =0;
printf
("請輸入你要查詢的資料:");
scanf
("%d"
,&x)
;printf
("%d\n"
,binsearch
(x, a, num));
system
("pause");
return0;
}
在乙個有序陣列中,查詢具體的某個數(二分查詢)
問題 給定已排序好的n個元素arr 0 n 1 現在要在這n 個元素中找出一特定元素x 基本思想 如下 define crt secure no warnings 1 include intsearch int x,int arr,int n return 1 未找到x int main print...
二分查詢有序陣列
對於乙個有序字串陣列,用二分法查詢某一字串是否存在於該字串陣列中。函式原型為 bool binarysearch const vector array,const string target 注意這裡的有序指的是字典序,如字串陣列 a,ab,ac,bc,cd,d 就是有序字串陣列,而 a,b,ab ...
有序陣列中的二分查詢
最近看一些演算法題發現這些問題到最後落實到實現上都是程式設計基礎的體現,包括對基本的for,if,else,while等語句的理解程度,還有對迴圈遞迴的理解。所以還是得回歸最基本的演算法,現在去學習那些高深複雜的dp,kmp,紅黑樹未免有點好高騖遠。目前應該堅持基礎,打好基礎,畢竟不是cs科班出身。...