首先,我們將一對輸入元素進行比較,然後把較小的值與最小值比較,較大值與最大值比較。這樣,每兩個元素共需3次比較。
如果n是奇數,就把最大最小值的初值都設為第乙個元素的值,然後成對處理剩下的元素;如果n是偶數,則先比較前兩個元素,決定最大最小值的初值,然後成對處理剩下的元素。
#include "stdafx.h"
struct max_min
;struct max_min maxandmin(int a, int len)
//如果是偶數,則先比較前兩個元素,然後成對處理後面元素。
else
else
i = 2;
}for (i; i < len; i += 2)
else
//然後將較大較小值與最大最小值進行比較
num.max = num.max > max_temp ? num.max : max_temp;
num.min = num.min
< min_temp ? num.min : min_temp;
}return num;
}int _tmain(int argc, _tchar* argv)
; int len = sizeof(a) / 4;
num = maxandmin(a, len);
cout << num.max
<< endl;
cout << num.min
<< endl;
return
0;}
氣泡排序同時得到最大 最小值位置
專案使用過程中,要求得到一天氣溫的最大值時間。傳進來的是所有天數按時間排序bigdecimal陣列,因為每一天資料較小,採用比較簡單的氣泡排序。氣泡排序,考慮到,最大的數在與最後那個位置的數交換之前不會被交換。故最後一次與最後那個位置數交換的數便是最大數,記錄下他的位置 如果整個過程沒有出現與最後乙...
同時找最大最小值
題目定義 給定乙個大小為n的陣列,無序,找到其中的最大值和最小值,要求元素間的比較次數盡可能少。這道題出自 演算法導論 創新工場2016校招筆試也考了這道題。以下摘自 演算法導論 事實上,我們只需要最多3 n 2 次比較就可以同時找到最小值和最大值。具體的方法是記錄已知的最大值和最小值,然後對輸入元...
最大最小值演算法
inputiterator min element inputiterator beg,inputiterator end inputiterator min element inputiterator beg,inputiterator end,compfunc op inputiterator ...