Category talk:ALGOL 68-rows: Difference between revisions

→‎Source code: MEDIAN and AVERAGE now return REAL
(→‎Source code: Added AVERAGE, MEDIAN and QUICKSELECT)
(→‎Source code: MEDIAN and AVERAGE now return REAL)
 
Line 195:
 
# returns the median element from data #
OP MEDIAN = ( REF[]INT data )INTREAL:
IF INT len = ( UPB data - LWB data ) + 1;
INT mid = ( len OVER 2 ) + LWB data;
ODD len
THEN data QUICKSELECT mid
ELSE ROUND ( ( data QUICKSELECT ( mid - 1 )
+ data QUICKSELECT mid
)
/ 2
)
FI # MEDIAN # ;
 
# returns the average of the elements of a #
OP AVERAGE = ( []INT a )INTREAL:
IF INT len = ( UPB a - LWB a ) + 1;
len < 1
Line 216:
sum +:= a[ i ]
OD;
ROUND ( sum / len )
FI # AVERAGE # ;
 
3,028

edits