Binary search
編輯歷史
| 時間 | 作者 | 版本 |
|---|---|---|
| 2017-07-19 14:10 – 14:10 | r0 – r1 | |
顯示 diff-
+ Binary search
+ *#include<iostream>
+ *#include<algorithm>
+ *#include<time.h>
+ *using namespace std;
+ *
+ *int l,m,n;
+ *int binarysearch(int arr[], int number) {
+ * int first=0;
+ * int last=n-1;
+ * while(first<=last) { //不用遞迴,用迴圈,也很好
+ * int mid=(first+last)/2;
+ * if (arr[mid]==number)
+ * return m;
+ * else if(arr[mid]<number)
+ * first=mid+1;
+ * else if(arr[mid]>number)
+ * last=mid-1;
+ * }
+ * return -1;//沒找到的時候return-1結束迴圈 <---- 是結束函數,返回呼叫函數的地方
+ *}
+ *
+ *int recursive_binarysearch(int arr[], int number)//用遞迴可以用簡單邏輯解決複雜問題
+ *{
+ * if( n==0 ) return -1;
+ * int x=n%2;//陣列長度的奇偶決定後半段的起點
+ * n/=2;
+ * if( *(arr+n) == m ) return m;
+ * if( *(arr+n) > m ) recursive_binarysearch(arr,m);
+ * else recursive_binarysearch(arr+n+x,m);
+ *}
+ *
+ *int main(){
+ * cout<<"你想要有多少數字做選擇: \\n";
+ * cin>>n;
+ * int arr[n];
+ * srand(time(NULL));
+ * for(int i=0;i<n;i++)
+ * arr[i]=rand()%100;
+ * sort(arr,arr+n);
+ * for(int i=0;i<n;i++)
+ * cout<<arr[i]<<" ";
+ * cout<<endl<<"輸入你要找的數字: \\n";
+ * cin>>m;
+ * if(binarysearch(arr,m)>-1)
+ * cout<<"找到你要的數字 "<<m<<" 了"<<endl;
+ * else
+ * cout<<"很可惜你要找的數字不在裡面!\\n";
+ * return 0;
+ *}
|
||