1.求各元素為正整數的乙個陣列序列中的最小值
int min(const unsigned int* array, int length)
unsigned int minvalue = array[0];
for (int i = 1; i < length; ++i)
} return minvalue;
}
2.求各元素為正整數的乙個陣列序列中的最大值
int max(const unsigned int* array, int length)
unsigned int maxvalue = array[0];
for (int i = 1; i < length; ++i)
} return maxvalue;
}
3.求各元素為正整數的乙個陣列序列中的最小值和最大值
void min_max(const unsigned int* array, int length, unsigned int& minvalue,
unsigned int& maxvalue)
if (length & 1) else else
length = length - 2;
} for (int i = 0; i < length; i = i + 2) else
} return;
}
4.測試**
#includeusing namespace std;
int main()
//測試最大值與最小值
cout << "min=" << min(x, length) << endl;
cout << "max=" << max(x, length) << endl;
unsigned int min = 0, max = 0;
min_max(x, length, min, max);
cout << "min=" << min << '\t' << "max=" << max << endl;
delete x;
cout << "請輸入陣列的長度:" << endl;
} return 0;
}
程式設計之美2 10 尋找陣列中的最大值和最小值
這個問題事實上非常easy解決。就是迴圈遍歷一遍陣列,然後找到陣列中存在的最大值和最小值就能夠了,書中主要討論的問題是比較次數較小的方法。只是。書中已經證明了,不管用什麼方法最少的比較次數也就是迴圈遍歷一遍的比較,結果是o 1.5n 的。所以。非常easy的能夠解決問題。第一種方法 函式宣告 voi...
最大值 最小值
求最大最小的時候有點小技巧,就是我們兩個兩個的比較,把大個跟當前最大比較,小的跟當前最小的比較,這樣就會節約一點比較時間,有原來的2 n到3 n 2。include include 得到最大最小值 int getmaxmin int ndata,int nlen,int pnmax,int pnmi...
程式設計之美 尋找陣列中的最大值和最小值
尋找乙個陣列裡的最大值和最小值 法一 分別遍歷一遍,次數o 2 n 法二 根據書上的講述,法三 主要在法二的基礎上改進,法二改變了原陣列,法三主要是不改變原陣列,定義兩個變數max和min,分別儲存最大值和最小值。法四 分治法,這是重點。typedef struct ivaluetype ivalu...