给我个C++实现二分查找的算法
3个回答
展开全部
#include <stdio.h>
#include<iostream>
using namespace std;
int main()
{
int a[10]={1,3,6,8,9,11,23,59,60,99};
int x;
int low=0,high=9;
int mid;
cout<<"请输入要查找的数字"<<endl;
cin>>x;
while(low<=high)
{
mid=(low+high)/2;
if(a[mid]==x)break;
if(a[mid]<x)low=mid+1;
else high=mid-1;
}
if(low<=high)cout<<"你要找的数字在第"<<mid<<"位"<<endl;
else cout<<"你要找的数字不存在"<<endl;
return 0;
}
#include<iostream>
using namespace std;
int main()
{
int a[10]={1,3,6,8,9,11,23,59,60,99};
int x;
int low=0,high=9;
int mid;
cout<<"请输入要查找的数字"<<endl;
cin>>x;
while(low<=high)
{
mid=(low+high)/2;
if(a[mid]==x)break;
if(a[mid]<x)low=mid+1;
else high=mid-1;
}
if(low<=high)cout<<"你要找的数字在第"<<mid<<"位"<<endl;
else cout<<"你要找的数字不存在"<<endl;
return 0;
}
2012-03-05
展开全部
#include<iostream>
using namespace std;
struct ssTable{
int *elem;
int length;
} ;
void CreatssTable(ssTable &s)
{
int i;
cout<<"请输入表长:";
cin>>s.length;
s.elem=new int[s.length+1];
cout<<"\n请输入表中的各个元素";
for(i=1;i<=s.length;i++)
cin>>s.elem[i];
}
int SeqSearch(ssTable s,int key)
{ int i;
s.elem[0] = key; // “哨兵”
for (i=s.length; s.elem[i]!=key; --i);
return i; // 找不到时,i为0
}
void main ()
{ssTable s;
int x, pos;
CreatssTable(s);
cout<<"请输入要查找的值";
cin>>x;
pos=SeqSearch(s,x);
if(pos>0)cout<<x<<"位于表中的第"<<pos<<"位置"<<endl;
else cout<<"没找到";
}
using namespace std;
struct ssTable{
int *elem;
int length;
} ;
void CreatssTable(ssTable &s)
{
int i;
cout<<"请输入表长:";
cin>>s.length;
s.elem=new int[s.length+1];
cout<<"\n请输入表中的各个元素";
for(i=1;i<=s.length;i++)
cin>>s.elem[i];
}
int SeqSearch(ssTable s,int key)
{ int i;
s.elem[0] = key; // “哨兵”
for (i=s.length; s.elem[i]!=key; --i);
return i; // 找不到时,i为0
}
void main ()
{ssTable s;
int x, pos;
CreatssTable(s);
cout<<"请输入要查找的值";
cin>>x;
pos=SeqSearch(s,x);
if(pos>0)cout<<x<<"位于表中的第"<<pos<<"位置"<<endl;
else cout<<"没找到";
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你个C++实现二分查找的算法.不用谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询