标题:有牛人可以给讲讲怎么用二分查找 无序序列
只看楼主
a351357741
Rank: 2
等 级:论坛游民
帖 子:117
专家分:70
注 册:2010-9-15
结帖率:87.5%
已结贴  问题点数:20 回复次数:17 
有牛人可以给讲讲怎么用二分查找 无序序列
如题
搜索更多相关主题的帖子: 序列 
2010-09-17 14:09
S_12s
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:110
专家分:670
注 册:2010-7-21
得分:0 
…………二分查找是对有序序列来说的……楼主好像没明白二分查找的原理……
如果是无序序列,那就先排序吧……
2010-09-17 14:14
a351357741
Rank: 2
等 级:论坛游民
帖 子:117
专家分:70
注 册:2010-9-15
得分:0 
回复 2楼 S_12s
的确存在用二分法查找无序序列的算法
2010-09-17 15:11
a351357741
Rank: 2
等 级:论坛游民
帖 子:117
专家分:70
注 册:2010-9-15
得分:0 
二分策略在信息学竞赛中的应用.rar (32.73 KB)

  二楼可以看看
2010-09-17 15:19
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
得分:0 
高深, 还没有见过 二分用在 无序序列上。

我就是真命天子,顺我者生,逆我者死!
2010-09-17 16:30
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
得分:10 
#include<stdio.h>
#define MAX 100
typedef int KeyType;
typedef char InfoType[10];
typedef struct {
    KeyType key;
    InfoType info;
}NodeType;
typedef NodeType SeqList[MAX];
int BinSear(SeqList R,int low,int high,KeyType k){
    int mid,i;
    i=1;
    while(low<=high){
        mid=(low+high)/2;
        if(R[mid].key==k) {
            printf("第%d次查找到 %d的位置是 %d\n",i,k,mid);
            return 1;
        }
        else if(k>R[mid].key) {
            printf("第%d次查找区间[%d]-[%d]\n",i,R[low].key,R[high].key);
            low=mid+1;
            mid=(high+low)/2;
            i++;
        }
        else{
            printf("第%d次查找区间[%d]-[%d]\n",i,R[low].key,R[high].key);
            high=mid-1;
            mid=(high+low)/2;
            i++;
    }
    }
        return -1;
}
int main(){
    int    i,k,pos, n=100,a[100];
    SeqList R;
    for(i=0;i<n;i++){
        a[i]=i;
        R[i].key=i;
    }
    k=38;
    BinSear(R,0,n-1,k);

}

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-09-17 16:33
a351357741
Rank: 2
等 级:论坛游民
帖 子:117
专家分:70
注 册:2010-9-15
得分:0 
回复 6楼 sunyh1999
呃!能讲讲思想吗?
我看代码头疼
2010-09-17 16:35
makebest
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:658
专家分:962
注 册:2005-3-17
得分:0 
二分法查无序序列, 是可以的, 前提是先排序.
2010-09-17 17:00
a351357741
Rank: 2
等 级:论坛游民
帖 子:117
专家分:70
注 册:2010-9-15
得分:0 
回复 8楼 makebest
呃 你看我上传的附件了 排完序那还叫无序序列么!
2010-09-17 17:05
S_12s
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:110
专家分:670
注 册:2010-7-21
得分:0 
好厉害啊,以前都没见过,长知识了……上面说了,那个二分查找用在无序序列中是有很大的限制条件的,不过思想都是一样的……
2010-09-17 17:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-320704-1-1.html




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

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