九度 题目1052:找x
来源:互联网 发布:学好java的心得 编辑:程序博客网 时间:2024/05/18 12:03
题目来源:http://ac.jobdu.com/problem.php?pid=1052
- 题目描述:
输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。
- 输入:
测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。
- 输出:
对于每组输入,请输出结果。
- 样例输入:
21 30
- 样例输出:
-1
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;const int MAXN = 210;int Partition(int* arr, int low, int high){if(low >= high)return low;int i = low, j = high+1;while (i < j){++i;while(arr[i] < arr[low])++i;--j;while(arr[j] > arr[low])--j;if(i < j && arr[i] != arr[j])arr[i] ^= arr[j], arr[j] ^= arr[i], arr[i] ^= arr[j];}if(arr[j] != arr[low])arr[j] ^= arr[low], arr[low] ^= arr[j], arr[j] ^= arr[low];return j;}void Quick_Sort(int* arr, int low, int high){if(low >= high)return ;int mid = Partition(arr, low, high);Quick_Sort(arr, low, mid-1);Quick_Sort(arr, mid+1, high);}void Binary_Search_TargetNum(int* arr, int x, int &index, int low, int high){if(low > high)return ;int iMid = (low + high)>>1;if(arr[iMid] == x){index = iMid;return ;}else if(arr[iMid] > x)Binary_Search_TargetNum(arr, x, index, low, iMid-1);elseBinary_Search_TargetNum(arr, x, index, iMid+1, high);}int main(){int arr[MAXN], b[MAXN], n, i, iData;while (~scanf("%d", &n) && n){for (i = 0; i < n; ++i){scanf("%d", &arr[i]);b[i] = arr[i];}Quick_Sort(b, 0, n-1);scanf("%d", &iData);int index = -1;Binary_Search_TargetNum(b, iData, index, 0, n-1);if(index != -1){for (i = 0; i < n; ++i){if(arr[i] == iData)index = i;}}printf("%d\n", index);}return 0;}
0 0
- 九度题目1052:找x
- 九度 题目1052:找x
- 【九度】题目1052:找x
- 九度OJ题目1052:找x
- 九度OJ题目1052:找x
- 九度OJ—题目1052:找x
- 九度 Online Judge 算法 刷题 题目1052:找x
- 【九度OJ】题目1052:找x 解题报告
- 九度王道考研机试真题 2011-3哈工 题目1052:找x 查找
- 题目1052:找x
- 题目1052:找x
- 题目1052:找x
- 题目1052:找x
- 题目1052:找x
- 题目1052:找x
- 题目 1052 找x
- 题目1052:找x
- 题目1052:找x
- poj3311 经典tsp问题
- 【数据结构】给出一个链表,遍历一次就找到中间节点
- leetcode: Interleaving String
- 铁路栈问题
- 算法题 1 判断两条单链表是否交叉 一百度实习笔试题(2012.5.6)
- 九度 题目1052:找x
- DataGridView控件绑定数据源
- Name Count -- Javascript 实现
- Qt 资源网站
- 体验格式控制的输出
- L和_T
- hdoj 2206 IP的计算
- 直接拿来用!最火的Android开源项目(二)
- sqlserver 锁