# Median ausrechnen



## StrikeTom (20. Apr 2010)

Hallo Leute,
ich mache gerade eine funktion, die den Median von einem int-array ausrechnet.
Manchmal(immer wenn ich eine gerade anzahl von zahlen habe) rechnet mir das programm aber den falschen medion aus.
Ich würde mich sehr freuen, wenn ihr eine lösung hättet
Hier der code:

```
public boolean istGerade(int arg0)
	{
		if(arg0%2==0)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	public float Durschnitt(int array[])
	{
		int gesamt = 0;
		int anzahl = array.length;
			for(int i = 0; i < anzahl; i++)
			{
				gesamt += array[i];
			}
		
		float durschnitt = gesamt/anzahl;
		return durschnitt;
	}
	public float Median(int zahlen[])
	{
		int anzahl = zahlen.length;
		int median = 0;
		Arrays.sort(zahlen);
		if (istGerade(anzahl)) 
		{
			int[] arr = {zahlen[anzahl/2],zahlen[anzahl/2]-1};
			System.out.println(arr[0]);
			System.out.println(arr[1]);
			float med = Durschnitt(arr);
			return med;
		}
		else
		{
			median = anzahl/2;
			return zahlen[median];
		}
	}
```


----------



## SlaterB (20. Apr 2010)

klasse Methodenname: Durschnitt

int/int wird in Java immer gerundet, 100/3 = 33, 100/49 = 2, 100/51 = 1, 100/110 = 0


----------



## StrikeTom (20. Apr 2010)

Danke für die schnelle Antwort. Es funktioniert jetzt.


----------



## Landei (20. Apr 2010)

Es gibt übrigens schnellere Algorithmen für den Median, die keine Sortierung erfordern, aber ziemlich kompliziert sind (z.B. in Knuth's TAOCP)


----------

