最大値と最小値は、五数要約のアルゴリズムによって、中央値および四分位点と共に求めることができる。五数要約アルゴリズムにおいては、ソーティングを適用する必要があるが、最大値と最小値のみが必要であるなら、まず暫定値を定めて、集団に含まれるそれぞれの数との比較を行うだけで良い。
以下のサンプルソースは、C言語による、要素数 qt
個の配列 array の最大値を求めるためのプログラムです。
静的・動的にかかわらず、配列の要素数 m
は既知であり、繰り返しのカウンタとして用いることができます。
汎用のため、倍精度実数を扱う関数として定義しており、呼びだす側で引数となる配列、および結果として返る値をキャストして用います。
/*配列の最大値*/
double max(double array, int qt)
{
double max; /*最大値を格納する変数*/
qt--; /*配列の要素数-1が配列終端の要素番号*/
max = array[qt]; /*配列の終端 array[qt] を暫定的な最大値としておく*/
qt--; /*配列要素を1つ処理したため*/
/*配列の先頭まで、maxとそれぞれの配列要素を比較し、max < 配列要素ならば max を更新する*/
while(qt >= 0)
{
max = (max < array[qt]) ? array[qt] : max;
/*最小値を求める場合の更新条件は (min > array[qt])*/
qt--;
}
return max;
}
|
2008/07/21: 作成