、(折半查找):用顺序映像实现折半查找算法(即二分查找算法),可自选递归或非递归方式;

     1、(折半查找):用顺序映像实现折半查找算法(即二分查找算法),可自选递归或非递归方式;具体要求如下:在主函数中用rand()函数(需包含“stdlib.h”头文件)产生10000个递增的随机数(相邻位置间的递增值为[0~10]之间的随机值),并输出这10000个数。然后从键盘上输入待查找的数,并调用查找函数fun()进行查找    
     2.fun( )函数中,按折半查找法查找指定的数,如果找到则返回它的位置序号,如果没找到则返回一个特定代码(比如 -13. 若查找成功,则将查找成功的提示和位置序号在主函数中输出;若查找失败,则将查找失败的提示在主函数中输出;    
     4.无论查找成功还是失败,都要在主函数中输出查找次数;    

#include <iostream>
using namespace std;
//数组以升序排列时,二分法查找x
int fun(int x, int a[], int n)
{
    int low, high, mid;
    low = 0;
    high = n-1;
    while(low <= high)
    {
        mid = (low + high) / 2;
        if(x < a[mid])
            high = mid - 1;
        else if(x > a[mid])
            low = mid + 1;
        else
            return mid;
    }
    return -1;
}
int main()
{
    int i,k,pos;
    int a[10];
    cout << "请输入要查找的数:";
    cin >> k;
    cout << "请输入10个整数(升序):";
    for(i=0;i<10;i++)
        cin >> a[i];
    pos = fun(k,a,10);
    if(pos < 0)
        cout << "未找到此数";
    else
        cout << pos;
    return 0;
}