二分查詢演算法與向量的賦值方法
阿新 • • 發佈:2018-12-21
#include <iostream> #include<vector> using namespace std; #define ARRAY_SIZE 10 class Solution { public: int binSearch(vector<int>nums, int val) { int low=0, high=nums.size()-1, mid; while(low<high) { mid=(low+high)/2; if(val==nums[mid]) { return mid; } else if(val>nums[mid]) { low=mid+1; } else if(val<nums[mid]) { high = mid-1; } } return -1; } }; int main() { int array[ARRAY_SIZE] = {1,9,20,91,901,8930,9870,19320,89012,893020}; vector<int> vectData(array, array+10); //for (int i=0; i<ARRAY_SIZE; i++) vectData.push_back(array[i]); Solution sovle; int mid = sovle.binSearch(vectData, 89012); cout<<"result = "<<mid<<endl; cin.get(); return 0; }