二分查找源代码

来源:互联网 发布:最游记淘宝端 编辑:程序博客网 时间:2024/06/14 10:54
/*对折法参数:DWORD IN_pArray[],  待查找数组DWORD IN_ArrayNum,  数组大小DWORD Value         待匹配数据返回:0xffffffff 查找识别0-IN_ArrayNum-1 匹配成功,返回位置*/DWORD BinarySearch(DWORD IN_pArray[],DWORD IN_ArrayNum,DWORD Value ) {//首先判断是否在数组中if( (Value<IN_pArray[0]) || (Value>IN_pArray[IN_ArrayNum-1]) ) return 0xffffffff;//数组头指针DWORD *pArray=IN_pArray;//元素个数DWORD Num=IN_ArrayNum;DWORD Temp;//////////////////////////////对折循环//元素个数为1时,无需对折while( Num>1 ){//数量直接右移Temp=Num>>1;//是否在数组右半部if( pArray[Temp]<Value ){pArray+=Temp+1;Num-=Temp+1;}//是否在数组左半部else if( pArray[Temp]>Value ){Num=Temp;}//匹配成功else{//返回位置return pArray+Temp-IN_pArray;}}//////////////////////////////对折循环--End//当元素个数为1是判断是否匹配,返回位置if( pArray[0]==Value ) return pArray-IN_pArray;return 0xffffffff;}


原创粉丝点击