最大最小值演算法

2021-06-28 23:58:36 字數 1392 閱讀 2602

inputiterator min_element (inputiterator beg, inputiterator end);

inputiterator min_element (inputiterator beg, inputiterator end, compfunc op);

inputiterator max_element (inputiterator beg, inputiterator end);

inputiterator max_element (inputiterator beg, inputiterator end, compfunc op);

功能:所有這些演算法都返回區間[beg, end)中的最大或最小值的位置

備註:a、上述無op引數版本以operator《進行元素比較

b、op用來比較兩個元素:op(elem1, elem2)如果第乙個元素小於第二個元素,應當返回true

c、如果存在多個最大或最小值,上述演算法返回找到的第乙個最大或最小值

d、op不應該改動傳進去的引數

e、時間複雜度:線性

class cpeople

cpeople(int nage, string strname):m_nage(nage),m_strname(strname){}

int get_age()

string get_name()

friend ostream& operator<<(ostream &ouput, cpeople people);

};ostream & operator<<(ostream &output , cpeople people)

bool compare(cpeople people1, cpeople people2)

int main(int argc, char *argv)

; vectorvec1(arrpeople, arrpeople + sizeof(arrpeople)/sizeof(arrpeople[0]));

// 查詢最小值

vector::const_iterator itervec = min_element(vec1.begin(),vec1.end(), compare);

if (itervec != vec1.end())

cout << *itervec;

// 查詢最大值

vector::const_iterator itervec1 = max_element(vec1.begin(),vec1.end(), compare);

if (itervec1 != vec1.end())

cout << *itervec1;

return 0;

}

最大最小值

示例一 maximum lambda x,y x y x x y y 注意 x y 返回的是0或者1 minimum lambda x,y x y y x y x a 10 b 20 print the largar one is d maximum a,b print the lower one ...

最大值 最小值

求最大最小的時候有點小技巧,就是我們兩個兩個的比較,把大個跟當前最大比較,小的跟當前最小的比較,這樣就會節約一點比較時間,有原來的2 n到3 n 2。include include 得到最大最小值 int getmaxmin int ndata,int nlen,int pnmax,int pnmi...

9 1最大最小值

問1 得到最大或最小的話,比較次數?n 1 問2 同時的到最大最小,比較次數?奇數 3 n 2 偶數 1 3 n 2 2 附上 public static void main string args system.out.println minmax a 同時取最大最小 public static ...