The Fourth Dimension Space

枯叶北风寒,忽然年以残,念往昔,语默心酸。二十光阴无一物,韶光贱,寐难安; 不畏形影单,道途阻且慢,哪曲折,如渡飞湍。斩浪劈波酬壮志,同把酒,共言欢! -如梦令

重写二分查找模板

//////////////////////////////////////////////////////////////////////////
//                            二分查找模板
//                                    by abilitytao
///////////BEGIN_TEMPLATE_BY_ABILITYTAO_ACM//////////////////////
template<class T>
*b_search(T key,T a[],int size)
{
    
    
int mid;
    
int front=0;
    
int rear=size-1;
    
while(front<=rear)
    
{
        
        mid
=(front+rear)/2;
        
if(a[mid]==key)
            
return &a[mid];
        
else if(key>a[mid])
        
{
            front
=mid+1;
            
continue;
        }

        
else if(key<a[mid])
        
{
            rear
=mid-1;
            
continue;
        }

    }

    
if(front>rear)
        
return NULL;
}

/////////////////////////END_TEMPLATE_BY_ABILITYTAO_ACM////////////////////////////


上次在腾讯的比赛里用到这个模板,发现了一些问题,原因是通常查找的时候都是对结构体进行的,我们通过对结构体中的某一个key值进行查找然后再得到与它绑定的其他值。如果只是返回下标号,在有下标算数的查找里则需要特殊处理,可能返回指针会更加方便一点:-)

posted on 2009-05-22 01:54 abilitytao 阅读(165) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理