#include<iostream>using namespace std;int Search(int s[],int x,int n){//二分查找的非递归算法 int mid,low=0; int high=n-1; while(low<=high) { mid=(low+high)/2; if(x==s[mid]) return mid; else if(x<s[mid]) high=mid-1; else low=mid+1; } return -1;}int Search1(int s[],int x,int n,int low,int high){//主函数main中调用时Search(s,x,n,0,n-1) if(low>high) return -1; else { int mid=(low+high)/2; if(x==s[mid]) return mid; else if(x<s[mid]) return Search1(s,x,n,low,mid-1); else return Search1(s,x,n,mid+1,high); }}void main(){ int n,L[20],temp; int k,k1;//找到元素的下标 cout<<"输入元素的个数:"<<endl; cin>>n; for(int i=0;i<n;i++) { cout<<"输入第"<<i+1<<"个数字:"; cin>>L[i]; } cout<<"输入您要查找的元素:"; cin>>temp; k=Search(L,temp,n-1); k1=Search1(L,temp,n-1,0,n-1); cout<<"快速查找(递归算法):"; cout<<L[k]<<"是第"<<k+1<<"个元素!" <<endl; cout<<"快速查找(非递归):"; cout<<L[k1]<<"是第"<<k1+1<<"个元素!"<<endl; }