在有序序列中查找某一元素x。
标签:while ++ size problem i++ fine php sample namespace
在有序序列中查找某一元素x。
首先输入一个正整数n(n<=100000),表示该序列有n个整数,然后按从小到大的顺序输入n个整数;
接着是一个正整数m,表示有m次查找;
最后是m个整数,表示m个要查找的整数x。
对于每一次查找,有一行输出。若序列中存在要查找的元素x,则输出元素x在序列中的序号(序号从0开始);若序列中不存在要查找的元素x,则输出"Not found!"。
5
1 3 5 7 9
11
-1
1
2
3
4
5
6
7
8
9
10
Not found!
0
Not found!
1
Not found!
2
Not found!
3
Not found!
4
Not found!
查找区间左闭右开
#include<iostream> using namespace std ; #define maxn 110000 int n , m , x ; int num[maxn] ; bool flag ; int pos ; void check(int start , int ends , int x){ if(ends<start){ return; } int mid = (start+ends)/2 ; if(num[mid] == x){ pos = mid ; flag = true ; return; // 找到 }else if(x<num[mid]){ check(start , mid-1 , x) ; }else if(x>num[mid]){ check(mid+1 , ends , x) ; } } int main(){ cin>>n ; for(int i=0 ; i<n ; i++){ cin>>num[i] ; } cin>>m ; while(m--){ cin>>x ; flag = false ; check( 0 , n , x) ; if(flag==false){ cout<<"Not found!"<<endl ; }else{ cout<<pos<<endl ; } } return 0 ; }
标签:while ++ size problem i++ fine php sample namespace
原文地址:https://www.cnblogs.com/yi-ye-zhi-qiu/p/8902505.html