摘要: 参考地址:http://blog.sina.com.cn/s/blog_6d50a05801016092.html问题:一个循环有序数组(如:3,4,5,6,7,8,9,0,1,2),不知道其最小值的位置,要查找任一数值的位置。要求算法时间复杂度为log2(n)。问题分析:我们可以把循环有序数组分为左右两部分(以mid = (low+high)/ 2为界),由循环有序数组的特点知,左右两部分必有一部分是有序的,我们可以找出有序的这部分,然后看所查找元素是否在有序部分,若在,则直接对有序部分二分查找,若不在,对无序部分递归调用查找函数#include <iostream>#inclu 阅读全文
posted @ 2012-11-15 22:00 wouldguan 阅读(307) 评论(0) 推荐(0) 编辑