演算法導論 同時找出最大值和最小值

2021-06-07 12:58:26 字數 345 閱讀 2731

在乙個有n個元素的集合中,需要多少次比較才能確定其最小、最大元素呢?如果乙個乙個的比較,那麼需要n-1次比較,是不是有更好的方法呢?

如果,在比較中,記錄遇到的最大值和最小值。將輸入的元素兩兩比較,然後與當前的最大值、最小值進行比較。這樣每2個元素需要3次比較,而不是原來的4次。

實現**如下:

void mininum()

else

}else

for(int i=0;i= array_list[i+1])

else

if(max_tmp > tmp_max)

if(min_tmp < tmp_min)

} std::cout<

演算法導論 同時求出最大值最小值的方法

核心思想 假設陣列中有n個元素,n有兩種情況 1.若n是奇數,就將最大值和最小值的初值都設為第乙個元素的值。2.若n是偶數,就將陣列中前兩個元素互相比較一次,將最小值的初值設定成較小者,將最大者的初值設定成較大者。最後,在n分完奇偶,且最大值最小值設定完後,將餘下的元素成對的處理,即兩個兩個元素相互...

最大值 最小值

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

NYOJ 最大值和最小值

最大值和最小值 時間限制 1000 ms 記憶體限制 65535 kb 難度 1 描述 小明在上c語言課時老師布置了一道程式設計作業,要求是給你乙個數 數的長度小於100 讓你求出由該數的數字組成的最大值和最小值,由於小明程式設計學的不好但為了完成作業,想請你幫助他。輸入第一行輸入乙個數n 0輸出 ...