# Calculate the median in Java



## theFAst0ne (Apr 16, 2009)

I have written a program in java that puts 100 random integers into an array. I now need to find the median of these numbers. I am still a beginner in java, can anyone help me? Thanks.

import java.util.*;

public class array
{
public static void main (String [] args)
{
int [] num = new int [100];
int high = 0;
int med = 0;

for (int loop = 0 ; loop <=99 ; loop++)
{
num [loop] = (int) (Math.random() * 101);

if (num [loop] > high)
{
high = num [loop];
}
System.out.println (num [loop]);
}
System.out.println ("Highest: " + high);
System.out.println ("Median: " + med);
}
}


----------



## trevorma91 (Dec 3, 2007)

Ok, so your loop for adding the random numbers is good, along with your determination of the highest number. Why are you doing your random number between 1 and 101? If you're doing numbers 1 - 100 then the median would be 50, correct me if I'm wrong. Then you could just check if num[loop] is equal to 50.


----------



## s_gowtham (Sep 26, 2010)

trevorma91 you are wrong ,it is the middle number when arranged in ascending or descending order so this is how the program must be

int t; 
for(int i=0;i<100;i++){ 
for(int j=0;j<100-i;j++){ 
if(num[j]>num[j+1]){ 
t=num_; 
num=num[j+1]; 
num[j+1]=t; 
this sorts it and then the median is num[50]
so the program is



import java.util.*;

public class array
{
public static void main (String [] args)
{
int [] num = new int [100];
int high = 0;
int med = 0;

for (int loop = 0 ; loop <=99 ; loop++)
{
num [loop] = (int) (Math.random() * 101);

if (num [loop] > high)
{
high = num [loop];
}
System.out.println (num [loop]);
}
int t; 
for(int i=0;i<100;i++){ 
for(int j=0;j<100-i;j++){ 
if(num[j]>num[j+1]){ 
t=num; 
num=num[j+1]; 
num[j+1]=t; 
}
}
}
med=num[50];

System.out.println ("Highest: " + high);
System.out.println ("Median: " + med);
}
} 


Click to expand...


check for errors ,there might be mistakes. p.s:-from http://hacktheplanets.blogspot.com/2010/06/java-program-to-prove-that-selection.html
selection sort_


----------



## TheOutcaste (Aug 8, 2007)

If you have an even number of numbers, there is no middle number. You have to divide the set into two halves, then add the last number in the first half plus the first number in the second half and divide by two to get the median of the set.
1, 7, 12
7 is the middle number, so it is the median
1, 7, 12, 23
No middle number, so:
(7+12)/2=9.5
The median is 9.5

Remember that arrays start with 0, not 1
If you are checking a list of 100 numbers (Array(0)-Array(99)), the median is the average of the 50th and 51st numbers, or (Array(49)+Array(50))/2

If you have an odd number of numbers, then it's the middle number.
If you have 101 numbers (Array(0)-array(100)), the median is the 51st number (101+1)/2, or Array(50)


----------



## s_gowtham (Sep 26, 2010)

the finer points.....


----------

