📄 minmax3.cpp
字号:
// find min and max of n elements// non-recursive divide-and-conquer version#include <iostream.h>template<class T>bool MinMax(T w[], int n, T& Min, T& Max){// Locate min and max of w[0:n-1]. // Return false if fewer than one element. // special cases, n <= 1 if (n < 1) return false; if (n == 1) {Min = Max = 0; return true;} // initialize Min and Max int s; // start point for loop if (n % 2) {// n is odd Min = Max = 0; s = 1;} else {// n is even, compare first pair if (w[0] > w[1]) { Min = 1; Max = 0;} else {Min = 0; Max = 1;} s = 2;} // compare remaining pairs for (int i = s; i < n; i += 2) { // find larger of w[i] and w[i+1] // then compare larger with w[Max] // and smaller with w[Min] 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;}void main(void){ int w[12] = {10, 25, 8, 2, 8, 10, 6, 3, 1, 20, 4, 35}; int n = 12; int Min, Max; MinMax(w,n,Min,Max); cout << w[Min] << ' ' << w[Max] << endl;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -