标题:查找
1.顺序查找
#include <iostream>
using namespace std;
int SquentialSearch(int a[],int n,int x);
int main(){
int m[]={2,4,6,8};
int rs;
rs=SquentialSearch(m,4,6);
cout<<rs<<endl;
return 0;
}
int SquentialSearch(int a[],int n,int x){
int i;
for(i=0;i<n;i++){
if(a[i]==x){
return i;
}
if(i==n){
return -1;
}
}
}
2.折半查找
#include <iostream>
using namespace std;
int BinarySearch(int a[],int x,int n);
int main(){
int x[]={1,2,3,4,5,6,7,8,9,66,77,88,99,100,234,555};
int rs;
int num;
cin>>num;
rs=BinarySearch(x,num,16);
if(rs<0){
cout<<"no"<<endl;
}else
{
cout<<"在x["<<rs<<"]找到"<<num<<endl;
}
return 0;
}
int BinarySearch(int a[],int x,int n){
int low,high,mid;
low=0;
high=n-1;
while(low<=high){
mid=(low+high)/2;
if(a[mid]==x)
{
return mid;
}else if(a[mid]<x)
{
low=mid+1;
}else if(a[mid]>x)
{
high=mid-1;
}
return -1;
}
}