摘要: 很多书上都会讲到二分查找(数据结构与算法教材、《编程之美》、《编程珠玑》),这也是一个经典的面试题。尽管它很常见,大家也很熟悉,但是却不一定能够完美地写出来。今天自己整理了一下,把三种二分查找算法(找最后一次出现的某值v,找第一次出现的某值v和普通的二分查找)进行了梳理。问题描述:有一个按非降序排列的有序数组a[0...n-1]和一个数v1. 求数组a中最后一次出现的数v的下标设l为左边界,h为右边界,mid = (l+h)/2,那么,根据mid的取值,分三种情况:(1) a[mid] < v,说明v如果在数组中,应该出现在mid右侧,则调整左边界,l = mid + 1(2) a[mi 阅读全文
posted @ 2012-07-27 19:22 segeon 阅读(2064) 评论(0) 推荐(0)