早教吧 育儿知识 作业答案 考试题库 百科 知识分享

顺序表{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}当用折半查找,查关键字1,8,17时比较次序分别为(),(),().

题目详情
顺序表{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}当用折半查找,查关键字1,8,17时比较次序分别为(),(),().
▼优质解答
答案和解析
//实现过程如下:
#include 
using namespace std;
int a[]={1,2,3,4,5,5,7,8,9,10,11,12,13,14,15};
int b[10];
int Binary_Search(int num)
{
    int l=0;
    int r=14; //最后一个数的下标
    int mid;
    int ans=0;
    while(l<=r)
    {
        mid=(l+r)/2;
        b[ans]=a[mid];
        ans++;
        if(a[mid]==num) return ans;
        else if(a[mid]        else r=mid-1;
    }
    return ans;
}
int main()
{
    int n;
    while(cin>>n)
    {
        int t=Binary_Search(n);
        cout<<"比较次数为: "<        cout<<"依次比较的数为:";
        for(int i=0;i        cout<<'\n';
    }
    return 0;
}
//答案为4 1 4