對於普通的數求大小,我們之前已經做過了,那對於如今的陣列,我們該如何求陣列中最大的元素呢?我們可以這麼想,陣列就是一組數,只要,我們在這組數中選取乙個值,然後讓它依次和其他的數進行大小比較,當它小於其他數時,我們就把較大的那個數給它,最終就能夠找到最大值了,程式如下:
#include
int main ();
int max = a[0]
;// 我們假定第乙個數是最大的數
int i;
// 讓陣列中其他數和我們假定的最大的數比較
for(i =
1; i <
10; i++
) printf (
"%d\n"
, max)
;// 最終的max就是陣列中最大的那個數
return0;
}
同樣的,我們如何求出陣列中最小的那個數,並且求出它的下標呢?
解題思路:同求最大值一樣,我們先假定乙個最小值,然後讓它依次和其它值比較,如果其它數比它小,就將較小的那個數賦給它。同時,我們這裡需要知道最小值的下標我們可以使用交換的條件,當其它數比假定值小時,我們在交換值的同時,也將它的下標給我們事先定義的乙個量。
int
main()
;int min = a[0]
;// 假定最小值是第乙個數
int index =0;
// 定義的乙個下標
int i;
for(i =
1; i <
10; i++)}
printf (
"min = %d, index = %d\n"
, min, index)
;// 最終輸出的就是陣列最小值和它的下標
return0;
}
求陣列的最大值最小值
演算法陣列中的最大值和最小值 方法1 遍歷兩次求出最大值最小值 時間複雜度n 2 方法2 相鄰兩個數分為一組比較,大的放在偶數字,小的放到奇數字,然後在偶數字上找到最大值,在奇數字上找到最小值n 1.5 方法3 定義兩個變數max,min值,相鄰兩個數分為一組,比較出最大值和最小值,最大值和max比...
求陣列中的最大值和最小值
方法1 暴力方法 遍歷一遍陣列,比較2 n次求出最大值和最小值 方法2 改進方法 破壞了原陣列 遍歷一遍陣列使得下標為偶數的元素較下標為奇數的元素大,再分別求出最大值和最小值 比較次數為3 n 2次 方法3 改進方法 不破壞原陣列 遍歷一遍陣列將相鄰元素中較大值和nmax比較,將較小值和nmin比較...
求陣列中的最大值或者最小值
math.max value1 value2,max 是 math 的靜態方法,所以應該像這樣使用 math.max 而不是作為 math 例項的方法 簡單的來說,就是不使用 new 如果沒有引數,則結果為 infinity 注意是負無窮大 math.max true,0 1 math.max tr...