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

2021-08-19 09:00:46 字數 538 閱讀 8844

核心思想: 假設陣列中有n個元素,n有兩種情況:

1. 若n是奇數,就將最大值和最小值的初值都設為第乙個元素的值。

2.若n是偶數,就將陣列中前兩個元素互相比較一次,將最小值的初值設定成較小者,將最大者的初值設定成較大者。

最後,在n分完奇偶,且最大值最小值設定完後,將餘下的元素成對的處理,即兩個兩個元素相互比較,較小者設為最小值,

較大者設為最大值。

則迴圈n-1次後得出最大最小值。

/**

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

* 總的比較次數至多是3(n/2) 括號裡向下取整

* */

public class testfive else

} system.out.println("最小值: " + p);

system.out.println("最大值: " + q); }

public static void main(string args) ;

num(a);

}}

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

在乙個有n個元素的集合中,需要多少次比較才能確定其最小 最大元素呢?如果乙個乙個的比較,那麼需要n 1次比較,是不是有更好的方法呢?如果,在比較中,記錄遇到的最大值和最小值。將輸入的元素兩兩比較,然後與當前的最大值 最小值進行比較。這樣每2個元素需要3次比較,而不是原來的4次。實現 如下 void ...

最大值 最小值

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

int float double 最大值,最小值

中沒有double的最大最小值。如果輸出的比如 100lf輸出2.23432432,沒有達到100位,則最後2後面不一定都是0。原文見view plaincopy to clipboardprint?coder acboy date 2010 3 1 include include using na...