c++新手入门级代码 一维数组,冒泡排序后二分法查找数据


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//通过这个例子我知道了,要用二分法,先要排序
#include<iostream>
#define size 5
using std::cout;
using std::endl;
using std::cin;
int main()
{
//声明变量
    int i,j;
    float t,a[size];

    //从键盘上为数组赋值
    for (i=0;i<size;i++)
    {
       cout<<"a["<<i<<"]=";
       cin>>a[i];
    }

    //对数组按从小到大顺序排序
    for (i=0;i<size-1;i++)
        for (j=i+1;j<size;j++)
            if (a[i]>a[j])
            {
               t=a[i];
               a[i]=a[j];
               a[j]=t;
            }

    //显示排序结果
    for (i=0;i<size;i++)
       cout<<a[i]<<" ";
    cout<<endl;

    //输入要查找的数据
    int value;
    int found;   //找到为1,否则为0
    int	low,high,mid;   
    for (i=1;i<=3;i++) {
        cout<<"value=";
        cin>>value;
	
        //二分法查找数组a
        found=0;
        low=0;
        high=size-1;
        while(low<=high)
        {	
            mid=(high+low)/2;
            if (a[mid]==value)
            {
            found=1;
            break;
            }
            if (a[mid]<value)
                low=mid+1;
            else
                high=mid-1;
        }
        if (found)
            cout<<"The valu found at:a["<<mid<<"]="<<a[mid]<<endl;
        else
            cout<<"The "<<value<<" is not found!"<<endl;      
    return 1;
}
}



//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
技术第一,勿要不明理而盲目复制。此代码是我从百度上搜索得到,经过整理校对,修改程序中的错误,适当添加语句后,运行成功后写入博客。                                               
                                                                 

你可能感兴趣的:(函数,C语言,新手入门)