2039-数据结构上机实验之二分查找
2017-09-21 23:56
429 查看
#include <bits/stdc++.h> using namespace std; int res[1001000]; int n; /*二分查找:每次将key值与当前区间的下标mid比较 如果key > res[mid] 则在后区间继续查找 反之则在前区间查找 */ /*非递归*/ /*int QuickSort(int k); int main() { ios::sync_with_stdio(false); int m; while(cin >> n >> m) { for(int i = 0; i < n; i++) { cin >> res[i]; } while(m--) { int key; cin >> key; key = QuickSort(key); cout << key << endl; } } return 0; } int QuickSort(int k) { int left = 0; int right = n-1; while(left <= right) { int mid = (left + right)/2; if(k == res[mid]) { return mid; } else if(k < res[mid]) { right = mid-1; } else { left = mid+1; } } return -1; } */ /*递归实现*/ int QuickSort(int k, int right, int left); int main() { ios::sync_with_stdio(false); while(cin >> n) { for(int i = 0; i < n; i++) { cin >> res[i]; } int key; cin >> key; key = QuickSort(key, 0, n-1); if(key != -1) { cout << "YES" << endl; } else { cout << "NO" << endl; } } return 0; } int QuickSort(int k, int right, int left) { if(right > left) { return -1; } int mid = (right + left)/2; if(k == res[mid]) { return mid; } else if(k < res[mid]) { return QuickSort(k, right, mid-1); } else { return QuickSort(k, mid+1, left); } }
相关文章推荐
- SDUTOJ(2039)数据结构上机实验之二分查找
- [2039]数据结构上机实验之二分查找
- 2039-数据结构上机实验之二分查找
- [2039]数据结构上机实验之二分查找
- 数据结构上机实验之二分查找
- SDUT 数据结构上机实验之二分查找
- 数据结构上机实验之二分查找
- 寒假训练--二分哈希--数据结构上机实验之二分查找
- 数据结构上机实验之二分查找
- 数据结构上机实验之二分查找
- 数据结构上机实验之二分查找
- 数据结构上机实验之二分查找
- 数据结构上机实验之二分查找
- 数据结构上机实验之二分查找
- 数据结构上机实验之二分查找
- 数据结构上机实验之二分查找
- 数据结构上机实验之二分查找
- 数据结构上机实验之二分查找
- 数据结构上机实验之二分查找
- 数据结构上机实验之二分查找