Hallo zusammen,
ich habe folgende Aufgabenstellung erhalten:
Erstellen Sie eine öffentliche statische Methode, namens median(int[] arr), welche ein 1-
dimensionales int-Array als Eingabeparameter erhält und den Median des Arrays als double zurück
gibt. Falls das Array leer ist soll die Methode 0 zurückgeben. Falls das Array eine gerade Anzahl an
skalaren Einträgen enthält soll der Mittelwert der beiden Werte, die sich in der Mitte des sortieren
Arrays befinden, zurück gegeben werden. Das Array soll mit mit einem
bubbleSort-Sortieralgorithmus aufsteigend sortiert werden.
Bsp: [] → 0
[1,2,3,4,5] → 3
[5,2,4,3,1] → 3
[1,2,3,4] → 2.5
Ich habe jetzt den Code soweit geschrieben. Ich verstehe aber nicht wie ich das bool mit dem int verbinden kann.
Ich verstehe ehrlich gesagt nicht, was Du mit der Methode allEven() machen willst. Um den Median zu bestimmen, ist es notwendig, das eingehende Array zu sortieren und anschließend den Wert aus der Mitte des sortierten Arrays (bzw. den Mittelwert der beiden mittig positionierten Werte) zurück zu geben.
Schleifen benötigst Du einzig für den Sortieralgorithmus.
Mit der isEven methode wollte ich prüfen ob der Arraygröße gerade oder ungerade ist. Je nachdem muss man ja dann bei einer geraden Anzahl von Werten den Mittelwert zwischen den beiden werten nehmen ansonsten der mittlere Wert. Oder geht das einfacher als das ich mir das überlegt habe?
Aber wozu die Schleife for(int i : arr){
und wozu lagerst Du diesen Teil in eine andere Methode aus. Das, was Du in allEven machen willst, ist doch essentiell zur Bestimmung des Medians. Mach lieber eine eigene Methode für BubbleSort. dann erscheint der Code übersichtlicher und logisch strukturiert.
Aber ich frage doch in isEven einen Boolean ab. Und meine normale Methode ist ein double. Das kollidiert doch. Oder wie kann ich das in die methode einfügen?
Mit der isEven methode wollte ich prüfen ob der Arraygröße gerade oder ungerade ist. Je nachdem muss man ja dann bei einer geraden Anzahl von Werten den Mittelwert zwischen den beiden werten nehmen ansonsten der mittlere Wert. Oder geht das einfacher als das ich mir das überlegt habe?