順序表的結(jié)構(gòu)體定義 二分查找和折半查找一樣嗎?
二分查找和折半查找一樣嗎?二進制搜索算法是一種快速搜索算法。當我們在另一個數(shù)組中尋找一個數(shù)字時,我們通常直接遍歷這個數(shù)組直到找到這個數(shù)字。時間復(fù)雜度為O(n)。如果有大量的數(shù)據(jù),我們可以使用簡單快速的
二分查找和折半查找一樣嗎?
二進制搜索算法是一種快速搜索算法。當我們在另一個數(shù)組中尋找一個數(shù)字時,我們通常直接遍歷這個數(shù)組直到找到這個數(shù)字。時間復(fù)雜度為O(n)。如果有大量的數(shù)據(jù),我們可以使用簡單快速的搜索算法二進制搜索算法,也稱為半搜索算法。
折半查找算法及代碼?
#include<iostream>
#使用命名空間std
模板<class T>
int BinarySearch(ta[],const T&x,int n,int left,int right)
{
if(left>=right)
return-1
else
{
if(a[(left right)/2]==x)
return else if(x>=(left)右)/2)
返回二進制搜索(a,x,n,(左-右)/21,右)
else if(x<(左-右)/2)
返回二進制搜索(a,x,n,左,(左-右)/2-1)
}
}
int main()
{
int a[MAXSize
]int i,len,x,P
CIN>>len
for(I=0I<leni)
CIN>>A[I
]CIN>>X
P=binarysearch(a,x,len,0,len-1)
if(P==-1)
cout<<“數(shù)字不存在!”!“<<endl
else
cout<<p 1<<endl
返回0
}