Binary Search:对一个已经排好序的序列,比较序列中点与查找数,其中一般序列就不需要考虑了,如此重复。 算法复杂度:O(lg(N)) C++代码实现如下: /************************************************* Function: BinarySarch Description:在已经从大到小排序的数组中查找某个元素的位置 Input: A:ElementType类型的数组 begin:查找的开始位置 end:查找的结束始位置 elem:所查找的元素 *************************************************/ int BinarySarch(ElementType D[], int begin, int end, const ElementType &elem) { int middle = (begin + end) / 2; while ( (end - begin) >= 2) { if (D[middle] == elem) { return middle; } else if (D[middle] > elem) { begin = middle; } else { end = middle; } middle = (begin + end) / 2; } if (D[begin] == elem) { return begin; } else if (D[end] == elem) { return end; } else return -1; }