赞
踩
1、最大值和最小值问题的最优算法
给定n个实数存放于一维数组A中,试设计一个算法在最坏情况下用3n/2-2次的比较找出A中的最大值和最小值(为简化,可假设n为偶数)
#define inf 0x3f3f3f3f void maxmin(int* a, int left, int right, int* max, int* min) { int mid; int lmax = 0, lmin = inf, rmax = 0, rmin = inf; if (left == right)//边界条件 { *max = a[left]; *min = a[right]; return; } //分开始递归 mid = (left + right) / 2; maxmin(a, left, mid, &lmax, &lmin); maxmin(a, mid + 1, right, &rmax, &rmin); //合并 if (lmax > rmax) { *max = lmax; } else { *max = rmax; } if (lmin < rmin) { *min = lmin; } else { *min = rmin; } return; }
转载于https://www.cnblogs.com/wkfvawl/p/11460280.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。