1 solutions
-
0
C++ :
#include<iostream> using namespace std; const int max1=1000000; int a[max1],n,m; int flag; int search(int ,int, int ); int main() { cin>>n; for (int i=1; i<=n; ++i) cin>>a[i]; cin>>m; flag=search(1,n,m); if (flag>0) cout<<"YES"<<endl; else cout<<"NO"<<endl; //cout<<flag<<endl; return 0; } int search(int l,int r,int m) { int mid=(l+r)/2; if (l>r) return -1; else if (a[mid]==m) return mid; else if (a[mid]<m) return search(l,mid-1,m); else return search(mid+1,r,m); }
Pascal :
program binsearch; var a:array[1..100000] of longint; i,n,x,f:longint; function binsearch(k:longint):longint; var low,hig,mid:longint; begin low:=1;hig:=n; mid:=(low+hig) div 2; while (a[mid]<>k) and (low<=hig) do begin if a[mid]<k then hig:=mid-1 else low:=mid+1; mid:=(low+hig) div 2; end; if low>hig then mid:=0; binsearch:=mid; end; begin readln(n); for i:=1 to n do read(a[i]); readln(x); f:=binsearch(x); if f>0 then writeln('YES') else writeln('NO'); end.
Java :
import java.util.*; public class Main{ public static void main(String[] args) { Scanner input=new Scanner(System.in); int n=input.nextInt(); int []a=new int[n]; for(int i=0;i<n;i++) { a[i]=input.nextInt(); } int tar=input.nextInt(); if(tar==binseach(0,tar,a.length-1, a)) { System.out.println("YES"); }else { System.out.println("NO"); } } public static int binseach(int st,int tar,int end,int []a) { if(st>end) { return -1; } int mid=0; mid=(st+end)/2; if(a[mid]>tar) { st=mid+1; return binseach(st, tar, end, a); } if(a[mid]<tar) { end=mid-1; return binseach(st, tar, end, a); }else { return a[mid]; } } }
- 1
Information
- ID
- 670
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- 10
- Tags
- # Submissions
- 4
- Accepted
- 2
- Uploaded By