《算法设计》求单峰数组
来源:互联网 发布:协议数据单元组成 编辑:程序博客网 时间:2024/05/17 04:05
这是算法设计书地171页上的题:假设有n个项的数组A,数组的每个元素都不相同,该数组序列是单峰的:对于某个在0与n-1之间的下标p,
数组项的值增加直到A中的位置p,然后剩下的元素减少直到位置n,
要求:尽量读很少的元素,就是找到这个顶峰元素p在哪一个位置,下面是具体的递归实现
ublic class FindMaxIndex { public static int findMaxIndex(int arr[], int begin, int end) { int center = (begin + end) / 2; //如果中间元素处于上坡的位置 if (arr[center] > arr[center - 1] && arr[center] < arr[center + 1]) { begin = center + 1; return findMaxIndex(arr, begin, end); }//如果处于下坡的位置 else if (arr[center] < arr[center - 1] && arr[center] > arr[center + 1]) { end = center -1; return findMaxIndex(arr, begin, end); } else {//此种情况是当arr[center-1]<arr[center]<arr[center+1]因为此数组是单峰数组, return center; } } public static void main(String[] args) { int arr[] = {1, 2, 3, 5,6, 7, 8,9,10,4, 3, 2, 1}; System.out.println(FindMaxIndex.findMaxIndex(arr, 0, arr.length)); }}
- 《算法设计》求单峰数组
- 【算法设计与数据结构】三分法:求单峰函数的极值
- 二分法求单峰函数最大值
- 三分法求单峰函数极值
- 三分法求单峰函数最值
- 黄金分割法与单峰函数求极值
- 分治算法实验-单峰序列问题
- UmBasketella(三分算法解决单峰问题)
- [黄金分割比] 黄金分割法求单峰函数最值
- 求数组最大值优化算法
- KMP算法求next数组
- 循环数组求位置算法
- 算法设计:如何求数组中第2大的数
- 数据结构和算法设计专题之---求子数组和的最大值
- 数据结构 数组操作 稀疏矩阵采用三元组存储,设计算法求两个矩阵的和。
- 【算法设计】求逆序数
- 【专题训练】【递推算法】 单峰排列 解题报告
- 求子数组和的最大值算法
- VB使用的基本数据类型
- ABI 的意义
- commons-lang(time应用)
- 云南红河称官员被举报诱奸女网友事件查无证据-诱奸-官员丑闻-官员不正之风
- android JNI 调用第三方动态库
- 《算法设计》求单峰数组
- 【转】XML节点的认识
- SlidingDrawer ID引发的错误 ava.lang.IllegalArgumentException: The handle attribute is must refer to a
- SSL握手1
- WPA/RSN四次握手和PTK
- 海词网:在线教育平台
- Node.js零起点开发(一)-NodeJs安装、Hello Word
- JAVA多线程实现和应用总结
- SSL握手2