php陣列中二分查詢是什麼

coyan發表於2021-09-11

php陣列中二分查詢是什麼

1.定義

二分查詢也稱折半查詢Binary Search),它是一種效率非常高效的查詢方法。但是折半查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列。

2. 優缺點

優點是比較次數少,查詢速度快,平均效能好;

其缺點是要求待查表為有序表,且插入刪除困難。

因此折半查詢方法適用於不經常變動而查詢頻繁的有序列表

3.例項

#include<stdio.h>
#include<iostream>
using namespace std;
int main(){
  int a[100];//注意這裡的陣列下標,即a[0]=1,a[1]=2……a[99]=100
  int guess;//猜測字元
  int flag=0;//設定標誌位,區分是否查詢成功
  int count=0;//統計比較次數
  int low=0,mid,high=99;
  //初始化
  cout<<"1、初始化"<<endl;
  for(int i=0;i<100;i++){
      a[i]=i+1;
  }
  cout<<"2、要查詢的數字"<<endl;
  cout<<"guess:";
  cin>>guess;
  cout<<"3、二分查詢"<<endl;
  //二分查詢
  while(low<=high){
  count++;
      mid=(low+high)/2;
 cout<<"第"<<count<<"次查詢,其中low="<<low<<"   high="<<high<<"   mid="<<mid<<endl;
 if(guess==a[mid]){
 flag=1;
 cout<<"success!比較次數:"<<count<<"次"<<endl;
 break;//查詢成功就退出,如果想要繼續查詢也是可以的
 }
 if(guess>a[mid]){
 low=mid+1;
 }
 if(guess<a[mid]){
      high=mid-1;
 }  
  }
  if(flag==0)
  cout<<"fail!"<<endl;
}

以上就是php陣列中二分查詢的基本介紹,相信大家對於這種查詢方法,還是有很多使用的需求的。在接下來的學習中,我們會帶來更多有關二分查詢的內容,大家可以關注一下。更多php學習指路:

推薦作業系統:windows7系統、PHP5.6、DELL G3電腦

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2236/viewspace-2830802/,如需轉載,請註明出處,否則將追究法律責任。

相關文章