Averages/Median: Difference between revisions
Content added Content deleted
m (added Category:Sorting) |
|||
Line 976: | Line 976: | ||
=={{header|EasyLang}}== |
=={{header|EasyLang}}== |
||
⚫ | |||
<lang>intvars |
|||
⚫ | |||
# |
# |
||
subr partition |
subr partition |
||
swap list |
swap list[(left + right) / 2] list[left] |
||
mid = left |
mid = left |
||
for i = left + 1 to right |
for i = left + 1 to right |
||
if list |
if list[i] < list[left] |
||
mid += 1 |
mid += 1 |
||
swap list |
swap list[i] list[mid] |
||
. |
. |
||
. |
. |
||
swap list |
swap list[left] list[mid] |
||
. |
. |
||
left = 0 |
left = 0 |
||
right = len list |
right = len list[] - 1 |
||
while left < right |
while left < right |
||
call partition |
call partition |
||
Line 1,002: | Line 1,001: | ||
. |
. |
||
. |
. |
||
res |
res = list[k] |
||
. |
. |
||
func median . list |
func median . list[] res . |
||
h = len list |
h = len list[] / 2 |
||
call quickselect h list |
call quickselect h list[] res |
||
if len list |
if len list[] mod 2 = 0 |
||
call quickselect h - 1 list |
call quickselect h - 1 list[] h |
||
res |
res = (res + h) / 2 |
||
. |
. |
||
. |
. |
||
test |
test[] = [ 4.1 5.6 7.2 1.7 9.3 4.4 3.2 ] |
||
call median test |
call median test[] med |
||
print med |
print med |
||
test |
test[] = [ 4.1 7.2 1.7 9.3 4.4 3.2 ] |
||
call median test |
call median test[] med |
||
print med |
print med</lang> |
||
<pre> |
<pre> |
||
4. |
4.40 |
||
4. |
4.25 |
||
</pre> |
</pre> |
||