为了账号安全,请及时绑定邮箱和手机立即绑定

有15个数无序存放在一个数组中 先排序 输入一个数要求用折半查找发找出该数是数组

有15个数无序存放在一个数组中 先排序 输入一个数要求用折半查找发找出该数是数组

C
慕粉1249561471 2017-04-28 10:21:58
查看完整描述

1 回答

?
snowmanJS

TA贡献89条经验 获得超53个赞

#include <iostream>
using namespace std;

#define SIZE 5
using ARR=int(&)[SIZE];

void sortAtoZ(ARR a)
{
    for(int i=0;i<SIZE-1;++i)
    {
        for(int j=i+1;j<SIZE;++j)
        {
            if(a[i]>a[j])
            {
                int temp=a[j];
                a[j]=a[i];
                a[i]=temp;
            }
        }
    }
}

void isArr(const int &n, const ARR a )
{
    auto beg=begin(a);
    auto ending=end(a);
    while(beg!=ending)
    {
        auto half=(ending-beg)/2+beg;
        if(n>*half)
            beg=half+1;
        if(n<*half)
            ending=half;
        if(n==*half)
            break;
    }
    if(beg!=ending)
        cout<<n<<"是数组的元素"<<endl;
    else
        cout<<n<<"不是数组的元素"<<endl;
}
int main()
{
    int a[SIZE]={0};
    cout<<"请输入"<<SIZE<<"个整数:"<<endl;
    for(auto &val : a)
        cin>>val;
    sortAtoZ(a);
    cout<<"排序后的数组为:"<<endl;
    for(auto &val : a)
        cout<<val<<" ";
    cout<<endl;
    int n;
    cout<<"请输入一个整数:"<<endl;
    cin>>n;
    isArr(n,a);
    return 0;
}


查看完整回答
1 反对 回复 2017-04-28
  • 1 回答
  • 0 关注
  • 1915 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信