| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 484 人关注过本帖
标题:关于折半查找法,大家看看
只看楼主 加入收藏
ilovekobemus
Rank: 2
等 级:论坛游民
帖 子:28
专家分:13
注 册:2011-10-20
结帖率:33.33%
收藏
已结贴  问题点数:10 回复次数:6 
关于折半查找法,大家看看
#define N 10
main()
{
    int a[N]={1,3,5,7,9,11,13,15,17,19};
    int i,j,number,low,high,mid,loca;   //loca干什么的
    int flag=1,sign=1;
    printf("input:\n");
    scanf("%d",&number);
    while(flag==1)                  // 解释一下括号里的flag==1的目的
    {
        loca=1;low=0;high=N-1;sign=1;
        if(number<a[0]||number>a[N-1])
            loca=-1;
        while((sign==1)&&(low<=high))
        {
            mid=(low+high)/2;
            if(number==a[mid])
            {
                loca=mid;
                printf("find %d,第%d个\n",number,loca+1);
                sign=0;
                flag=0;
            }
            else if(number<a[mid]) high=mid-1;     //high=mid-1  low=mid+1什么意思
                 else low=mid+1;
        }
        if(sign==1||loca==-1)
        {
            printf("Not found\n");
            flag=0;
        }
    }
}
搜索更多相关主题的帖子: mid number 
2012-02-28 21:22
ilovekobemus
Rank: 2
等 级:论坛游民
帖 子:28
专家分:13
注 册:2011-10-20
收藏
得分:0 
怎么没有人回答呀
2012-02-28 21:36
lkc
Rank: 2
等 级:论坛游民
帖 子:7
专家分:12
注 册:2012-2-16
收藏
得分:10 
loca干什么的
   是用来标志数组内是否有你需要找的数
flag是判断有没有找到   一旦找到就赋值为0

 else if(number<a[mid]) high=mid-1;     //high=mid-1  low=mid+1什么意思
                  else low=mid+1;
当你要找的数小于中间的那个数  说明你要找的数在前半段  就将尾标志移向中间的前一位   相反
就是讲头标志移向中间的后一位
2012-02-28 21:39
ilovekobemus
Rank: 2
等 级:论坛游民
帖 子:28
专家分:13
注 册:2011-10-20
收藏
得分:0 
回复 3楼 lkc
可以再解释仔细一点吗?还是有点不明白谢谢了
2012-02-28 21:45
ilovekobemus
Rank: 2
等 级:论坛游民
帖 子:28
专家分:13
注 册:2011-10-20
收藏
得分:0 
回复 3楼 lkc
sign又是干什么的
2012-02-28 21:46
lkc
Rank: 2
等 级:论坛游民
帖 子:7
专家分:12
注 册:2012-2-16
收藏
得分:0 
去看看折半查找的原理是怎么样的就知道了
2012-02-28 21:50
ilovekobemus
Rank: 2
等 级:论坛游民
帖 子:28
专家分:13
注 册:2011-10-20
收藏
得分:0 
回复 6楼 lkc
好的谢谢了
2012-02-28 21:55
快速回复:关于折半查找法,大家看看
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021887 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved