最大值與最小值 程式設計之美2 10

2021-06-21 10:00:45 字數 1182 閱讀 3194

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...