同时找数组里的最大最小数——分治思想
2014-04-05 17:27
239 查看
#include<iostream> using namespace std; void maxMin(int* arr,int p,int r,int &min,int &max) { if(p<r) { int q = (p+r)/2; int lmin,lmax,rmin,rmax; maxMin(arr,p,q,lmin,lmax); maxMin(arr,q+1,r,rmin,rmax); min = lmin<rmin?lmin:rmin; max = lmax>rmax?lmax:rmax; } else { min = max = arr[p]; } } int main() { int arr[] = {5,6,8,3,7,9}; int min,max; int len = sizeof(arr)/sizeof(arr[0]); maxMin(arr,0,len-1,min,max); cout<<min<<" "<<max; getchar(); return 0; }思想参考:《编程之美》
相关文章推荐
- [BUC-2.10]利用分治的思想求无序数组中的最大值和最小值以及求第二大的值(分治的思想可以使得比较的次数1.5N-2)
- 从一个数组中同时找出最大最小数-算法导论第九章
- 递归求数组最大最小值(分治思想)
- 实验9 指针1 1、程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依据。
- 通过3(2/n)次比较同时找到数组最大和最小值(python)
- 同时找到数组中的最小值和最大值
- 实验9(1)程序填空:下列程序在数组中同时查找最大元素和最小元素的下标,分别存放在 main()函数的max 和 min 变量中。要求:根据运行结果分析程序和填空,并注释说明填充依据。
- 分治 递归 引用 求一个数组中的最大和最小元素
- 同时找出在数组中的最大值、最小值
- 同时寻找一个数组中的最大元素和最小元素--你会有所收获
- 分治思想的求最大子数组和代码实现(C++)
- 在N个不同元素的数组A中,同时找到它的最大元素和最小元素,设A中的元素可以直接比较大小
- 【算法导论】同时求数组的最大值和最小值
- js同时寻找数组中最大值和最小值,编程之美解法三
- 一个数组中同时找到最大/最小值
- 同时找出数组的最大值和最小值,要求时间复杂度为o(n)
- 无序数组同时查找最大和最小的元素
- 同时获取数组中的最大值和最小值
- 递归求数组最大最小值(分治思想)
- 死磕==同时找出数组中得最大值和最小值