查找算法有很多.和人生中没有最好的人一样,只有最适合的.(恩,扯远了拉回来).每个算法适合的数据都不一样..有的适合小量数据(像冒泡什么的)..有的适合海量数据(像归并什么的)..我要说的二分搜索是个很好的查栈算法...前提是数列有序..时间复杂度是O(logn)...
算法思想是(假设数组升序排列,):设置三个变量,left.mid,和right...分别指向数组最左边,.中间和右边...每次待查找元素和mid比较..若是小于mid则说明待查元素不会出现在mid右边...所以修改right = mid-1(必须是mid-1,不然容易死循环);反之修改left...若是想的相等就返回...
就这样的.但是代码还是不好写,..一不留心可能玖四死循环了...
阅读(1386) | 评论(0) | 转发(0) |