最大值最小值查找算法 运用了分而治之的思想
template<class T> bool MinMax(T w[], int n, T& Min, T& Max) { //寻找w[0:n-1]中的最小和最大值 if (n < 1) return false; if (n == 1) { Min = Max = 0; return true; } // 对Min和Max进行初始化 int s; // 循环起点 if (n % 2) { // n为奇数 Min = Max = 0; s = 1; } else { // n为偶数,比较第一对 if (w[0] > w[1]) { Min = 1; Max = 0; } else { Min = 0; Max = 1; } s = 2; } for (int i = s; i < n; i += 2) { if (w[i] > w[i+1]) { if (w[i] > w[Max]) Max = i; if (w[i+1] < w[Min]) Min = i + 1; } else { if (w[i+1] > w[Max]) Max = i + 1; if (w[i] < w[Min]) Min = i; } } return true; }