【資結CH2考古】透過成對比較找最大值和最小值

【資結CH2考古】透過成對比較找最大值和最小值

更新於 發佈於 閱讀時間約 1 分鐘

題目


請使用 C 或 Java 語言寫一副程式,此副程式對一個長度為 10 的整數陣列 A[0:9],最多花費 15 次的數值比較運算,尋找陣列中的最小值及最大值,並分別存入 Min 及 Max。(注意:請加註解說明程式碼寫法)

【103.關務】


答案


#include <stdio.h>

int max,min;

void findMinMax(int A[10],int *max ,int *min){



//初始化,一開始先比大小,大的值存入*max ,小的值存入*min

if(A[0]>A[1]){

*max = A[0];

*min = A[1];

}

else{

*max = A[1];

*min = A[0];

}



//兩兩抓出來必較,大的值跟max比,小的值跟min比

for(int i=2;i<10;i+=2)

if(A[i] > A[i+1]){

if(A[i] > *max)

*max = A[i];

if(A[i+1] < *min)

*min = A[i+1];

}

else{

if(A[i+1] > *max)

*max = A[i+1];

if(A[i] < *min)

*min = A[i];

}

}


考點分析


這題的重點是用for迴圈分別找最大值跟最小值要找18次,但如果使用兩兩一組的方式比較,就可以降為13次。









avatar-img
資治通艦的沙龍
3會員
44內容數
人生中有的時候你會感知到,現在就是那個命運的分歧點,如果我不挽起袖子努力的話,我這一輩子大概就這樣了,所以我決定開始這個部落格,記錄我每天的努力,也希望可以分享學習的筆記與心得,大家可以一起交流學習。
留言
avatar-img
留言分享你的想法!
資治通艦的沙龍 的其他內容
第 1 題 題目 設有一三維陣列(three dimensional matrix) A[1...u₁, 1...u₂, 1...u₃],請問其中一元素(element)A[i,j,k] 之儲存位置為何?其中 1 ≤ i ≤ u₁,1 ≤ j ≤ u₂,1 ≤ k ≤ u₃,請列出推導過程。
陣列和鏈結串列的比較以及陣列位址的計算方式
Hash其實是一個人名,他發明了hash algorithm(雜湊演算法)其主要的目的是提高搜尋的效率,透過將物件相關訊息映射成一個唯一的數值,這個值就是雜湊值。
第 1 題 題目 設有一三維陣列(three dimensional matrix) A[1...u₁, 1...u₂, 1...u₃],請問其中一元素(element)A[i,j,k] 之儲存位置為何?其中 1 ≤ i ≤ u₁,1 ≤ j ≤ u₂,1 ≤ k ≤ u₃,請列出推導過程。
陣列和鏈結串列的比較以及陣列位址的計算方式
Hash其實是一個人名,他發明了hash algorithm(雜湊演算法)其主要的目的是提高搜尋的效率,透過將物件相關訊息映射成一個唯一的數值,這個值就是雜湊值。