--- tags: Coding --- # 二分搜實作 搜尋之前都要排序過哦 ## 遞迴版 ```cpp= int binary_search(int *a,int f,int e,int target){//陣列 第一個位置 最後位置 目標 if(f<=e){ int mid=(f+e)/2; if(target>a[mid]) return binary_search(a,mid+1,e,target); else if(target<a[mid]) return binary_search(a,f,mid-1,target); else if(target==a[mid]) return mid;//返回在陣列中的位置 } return -1;//沒有就返回-1 } ``` ## while迴圈版 ```cpp= int while_binary_search(int *a,int f,int e,int target){//陣列 第一個位置 最後位置 目標 while(f<=e){ int mid=(f+e)/2; if(target>a[mid]) f=mid+1; else if(target<a[mid]) e=mid-1; else if(target==a[mid]) return mid; } return -1; } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up