二分查找 本题要求实现二分查找算法。
函数接口定义: Position BinarySearch( List L, ElementType X ); 其中List结构定义如下:
typedef int Position; typedef struct LNode *List; struct LNode {
ElementType Data[MAXSIZE];
Position Last; /* 保存线性表中最后一个元素的位置 */ }; L是用户传入的一个线性表,其中ElementType元素可以通过>、==、Last;
int start=1;
int mid=0;
if(L->Data[start]==X)
return L->Data[start];
if(L->Data[end]==X)
return L->Data[end];
// if(L->Data[start]>X)
// return 0;
// if(L->Data[end]Data[mid]==X)
return mid;
else if(XData[mid])
{
if(mid-end==1)
return 0;
end=mid;
}
else
{
if((end-mid)==1)
return 0;
start=mid;
}
}
else
{
mid=start+(end-start)/2;
if(L->Data[mid]==X)
return mid;
else if(XData[mid])
{
if((mid-end)==1)
return 0;
end=mid;
}
else
{
if((end-mid)==1)
return 0;
start=mid;
}
}
}
}
