移位数组的二分查找
摘要:
一,题目 一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5}是由{6,5,4,3,2,1}左移两位形成的,在这种数组中查找某一个数。二,分析 1)在此序列不断二分的过程中,由于原序列是一个递减序列经过旋转得到的,将它从任何位置分开,都会得到两个序列, 其中一个是递减序列 另一个可以通过一个递减序列通过旋转得到。 2)这样在不断地二分查找时,我们处理的序列子片段要么就是一个旋转后递减序列,要么就是一个纯递减序列, 3)无论是前者还是后者,在继续分成两个片段时,至少有一个纯递减序列(可能两个都是,如果之前的序列片段就是纯递减序列的话)。 4)这样我们可以保证能找到一个片... 阅读全文
posted @ 2014-03-19 23:08 theCambrian.cpp 阅读(691) 评论(0) 推荐(0) 编辑