Averages/Median: Difference between revisions

From Rosetta Code
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
Averages/Median
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

Works with: Java version 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>

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>