当前位置:首页 > 网络编程 > 软件语言 > C语言 > 从n个数据中查找一个数

从n个数据中查找一个数

点击次数:32 次 发布日期:2008-12-01 12:46:54 作者:源代码网
源代码网推荐     n个数据用一数组a描述,查找对象用x描述。
    我们可以将n个数据与查找对象依次比较,可能找到,也可能找不到。这是一种顺序查找的方法,请读者编程实现。
    比顺序查找进一步的是折半查找,或称二分查找法。折半查找要求n个数据已排好序,排序的目的就是为了快速查找。假定n个数据已经由小到大排好序。查找到的数据用其下标k描述。是否找到用一标志变量flag描述。
    查找问题转化成在区间[O,n一1]找k。先计算其中点d,如果a[d]一x,则k—d;如果a[d]>x,则查找区间缩小为[O,d];如果a[d]<x,则查找区间缩小为[d,n一1]。要么找到,要么查找区间缩小一半,首发中国足协编程网继续折半查找。
    程序如下:
    float serach(a,n,x)/*折半查找函数*/
    float a[],x;
    int n:
    {int k,flag;
    int b=O,e=n一1,d;
    flag=O;
    do
    {d=(b+e)/2;
    if(a[d]==x){k=d;flag=1;}
    else if(a[d]>x)e=d;
    else b=d:
    )while(b<e&&!flag);
    if(flag==O)k=O;/*没找到*/
    return(k);
    } 源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华