如何求陣列中的最大值或最小值

2021-09-19 06:37:58 字數 967 閱讀 6363

對於普通的數求大小,我們之前已經做過了,那對於如今的陣列,我們該如何求陣列中最大的元素呢?我們可以這麼想,陣列就是一組數,只要,我們在這組數中選取乙個值,然後讓它依次和其他的數進行大小比較,當它小於其他數時,我們就把較大的那個數給它,最終就能夠找到最大值了,程式如下:

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