Averages/Median: Difference between revisions
Content added Content deleted
m (Add link to Mean) |
(Added Java) |
||
Line 3: | Line 3: | ||
===See also=== |
===See also=== |
||
* [[Mean]] |
* [[Mean]] |
||
=={{header|Java}}== |
|||
{{works with|Java|1.5+}} |
|||
<lang java5>public static double median(LinkedList<Double> list){ |
|||
Collections.sort(list); |
|||
if(list.size() % 2 == 0){ |
|||
return (list.get((list.size()) / 2) + list.get((list.size()) / 2 - 1)) / 2; |
|||
} |
|||
return list.get((list.size()-1)/2); |
|||
}</lang> |
|||
=={{header|Tcl}}== |
=={{header|Tcl}}== |
||
<lang tcl>proc median args { |
<lang tcl>proc median args { |
Revision as of 13:07, 12 June 2009
![Task](http://static.miraheze.org/rosettacodewiki/thumb/b/ba/Rcode-button-task-crushed.png/64px-Rcode-button-task-crushed.png)
You are encouraged to solve this task according to the task description, using any language you may know.
Write a program to find the median value of a vector of floating-point numbers. The program need not handle the case where the vector is empty, but must handle the case where there are an even number of elements.
See also
Java
<lang java5>public static double median(LinkedList<Double> list){
Collections.sort(list); if(list.size() % 2 == 0){ return (list.get((list.size()) / 2) + list.get((list.size()) / 2 - 1)) / 2; } return list.get((list.size()-1)/2);
}</lang>
Tcl
<lang tcl>proc median args {
set list [lsort -real $args] set len [llength $list] # Odd number of elements if {$len & 1} { return [lindex $list [expr {($len-1)/2}]] } # Even number of elements set idx2 [expr {$len/2}] set idx1 [expr {$idx2-1}] return [expr { ([lindex $list $idx1] + [lindex $list $idx2])/2.0 }]
}
puts [median 3.0 4.0 1.0 -8.4 7.2 4.0 1.0 1.2]; # --> 2.1</lang>