有一个有序的数组,将其中的元素都右移X位,这样将该数组变成了一个部分有序的数组。位置0到X以及X+1到n-1是有序的,但是array[X] > array[X+1]。array[X+1]为原先数组的最小值,我们称其为转折点。请找出该X+1。
解题思路:使用二分查找的方法来搜索X+1,时间复杂度为O(logn)。考虑只有一个元素和数组仍然保持有序的特殊情况。
public class BinarySearch {
private int[] array;
public int search(int t) {
int start = 0;
int end = array.length - 1;
int mid;
while (start <= end) {
mid = (start + end) / 2;
if (array[mid] == t) {
return mid;
} else if (array[start] == t) {
return start;
} else if (array[mid] > t) {
if (array[start] < array[mid]) {
if (t < array[start])
start = mid + 1;
else
end = mid - 1;
} else {
end = mid - 1;
}
} else {
if (array[start] > array[mid]) {
if (t < array[start])
start = mid + 1;
else
end = mid - 1;
} else {
start = mid + 1;
}
}
}
return -1;
}
public int find() {
int start = 0;
int end = array.length - 1;
int mid;
if (array[start] <= array[end])
return 0;
while (start <= end) {
mid = (start + end) / 2;
if (array[mid] > array[mid+1])
return mid+1;
else if (array[start] <= array[mid])
start = mid + 1;
else
end = mid - 1;
}
return 0;
}
public static void main(String[] args) {
BinarySearch bs = new BinarySearch();
bs.array = new int[] {5,6,1,2,3,4};
System.out.println(bs.find());
System.out.println(bs.search(4));
}
}
对于部分有序数组的查找,也可以使用二分查找的思想,再稍加修改一些判断条件即可。
分享到:
相关推荐
【LeetCode】1095....以上解题方法遵循了题目所给的限制,通过二分查找策略高效地在山脉数组中找到了目标值的第一个出现位置。注意,对于二分查找,要根据数组的特性调整判断条件,以适应递增和递减的不同部分。
BB法是一种广泛应用在经济周期研究中的统计方法,它通过滤波技术识别经济活动的周期性变化,从而确定经济周期的高峰与低谷,即经济的转折点。 1. **BB法简介**: BB法是由Pietro Baffigi和Harald Uhlig提出的,其...
如果这个条件不满足,可能需要调整搜索策略,例如通过寻找函数的转折点来改进二分查找。 总的来说,二分原理是算法设计中的一个强大工具,它能够高效地处理大量数据,尤其适用于有序集合,大大减少了搜索时间复杂度...
二、趋势的转折点通达信指标公式源码解析 VAR2:=TROUGHBARS(3,15,1); 该公式是通达信指标中的一部分,用于判断当前市场趋势是否处于底部。其中,TROUGHBARS函数用于计算当前价格在过去15个周期中的最低价,如果...
高盛-变革中的中国:聚焦产能周期-面对不均衡、判断转折点、穿越长周期(1).pdf
这个公式设计的目的是为了识别市场中的转折点,帮助交易者判断趋势的转变。通过计算多个不同周期的指数移动平均(EMA)以及最高价、最低价、开盘价和收盘价的组合,该公式构建了一组能够反映价格动向的指标。 首先...
LinkedIn职场人转折点报告.pdf
全球治理的转折点:二十国集团的作用(英)-国际事务研究院
通达信指标公式源码 多空转折点指标公式 主图源码.doc
把股票节点中的拐点找出来,一组股票节点里面的最高点和最低点,转折点
首先,我们可以通过一次遍历来解决这个问题,因为数组的特性使得最大值必然出现在数组的转折点,即从升序到降序的那个位置。这个转折点可以被定义为数组中第一个比其前一个元素大的数。因此,我们需要一个变量来跟踪...
在LCD和相机总线的设计中,功率转折点是一个关键概念,它涉及到如何有效降低系统功耗。传统的并行方案中,基带处理器(BP)直接驱动显示器,需要高带宽和大量的信号线,同时需要应对电磁干扰(EMI)问题。这种方案下...
通达信指标公式源码 多空转折点副图指标 源码 通达信 贴图 能逃顶抓底是一种技术指标,用于判断股票或期货市场中的多空转折点。该指标的主要思路是通过计算多个指数移动平均线的值,然后根据这些值来判断当前市场的...
文华财经指标公式期货软件指标公式文华公式指标转折点指标.doc
【中国应对气候变化的转折点】报告指出,中国正面临一个至关重要的时期,即从现在到未来十年的关键行动期。在这个阶段,正确的决策对于推动气候行动,实现经济可持续发展至关重要。气候变化不仅是一个全球性的挑战,...
在本文中,作者吴利华和刘丽娜基于战略转折点理论,研究了我国上市公司转型房地产业的状况及绩效。文章采用定性与定量分析相结合的方法,重点分析了战略转型的实施与管理、转型绩效的评价等内容。研究结论指出,转型...
转折点.net留言系统
基于中国劳动力市场的现状,本文研究了中国在2009-2017年是否跨越了“刘易斯转折点”。 研究表明,中国尚未进入“刘易斯转折点”。 本文以劳动的边际生产率作为判断问题的标准,并通过永续盘存法计算资本存量,以...