二分查找 本题要求实现二分查找算法。
函数接口定义: 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; } } } }