Einfach 0 gelöst 0% Erfolgsquote

Median einer Liste

Finde den mittleren Wert einer Liste nach dem Sortieren.

Das lernst du

  • Eine Liste sortieren und ihre Mitte finden
  • Gerade und ungerade Längen behandeln
  • Die zwei mittleren Werte mitteln

Problem

Sortiere die Werte in aufsteigender Reihenfolge. Bei einer ungeraden Anzahl von Werten nimm den mittleren Wert. Bei einer geraden Anzahl berechne das arithmetische Mittel der beiden mittleren Werte. Diese Aufgabe akzeptiert nur nicht-leere Listen.

Implementiere median_number(numbers).

Eingabe

numbers: Die nicht-leere Liste von Werten.

Ausgabe

Gib die Medianzahl als Zahl zurück; sie kann auf .5 enden.

Einschränkungen

1 ≤ Listenlänge ≤ 100.000. Jeder Wert ist eine ganze Zahl zwischen −1.000.000.000 und 1.000.000.000.

Beispiele

Beispiel 1
Eingabe:
numbers = [2, 8, 4, 10]

Erwartete Ausgabe:
expected = 6.0
Eingabe:
std::vector<long long> numbers = {2, 8, 4, 10};

Erwartete Ausgabe:
double expected = 6.0;
Eingabe:
long[] numbers = new long[] {2, 8, 4, 10};

Erwartete Ausgabe:
double expected = 6.0;

Erläuterung

Sortierte Reihenfolge ist 2, 4, 8, 10. Das mittlere Paar ergibt im Durchschnitt (4 + 8) / 2 = 6.

Beispiel 2
Eingabe:
numbers = [9, 1, 4]

Erwartete Ausgabe:
expected = 4.0
Eingabe:
std::vector<long long> numbers = {9, 1, 4};

Erwartete Ausgabe:
double expected = 4.0;
Eingabe:
long[] numbers = new long[] {9, 1, 4};

Erwartete Ausgabe:
double expected = 4.0;

Erläuterung

Sortierte Reihenfolge ist 1, 4, 9, wobei der mittlere Wert 4 ist.

So gehst du vor

Versuch es zuerst allein und öffne dann einen Hinweis nach dem anderen.

Hinweis 1

Das Median hängt von der sortierten Reihenfolge ab, also zählen die Positionen in der sortierten Liste.

Hinweis 2

Nach dem Sortieren nimm bei ungerader Länge das mittlere Element, bei gerader Länge die beiden mittleren.

Hinweis 3

Achte darauf, beim Mittelwert die beiden Hälften zu behalten, denn das Ergebnis kann auf .5 enden.

Erwartete Komplexität

Zeit O(n log n), zusätzlicher Speicher O(n)

Referenzen

Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.

Von anderen lernen

Community-Lösungen

Noch keine veröffentlichten Lösungen. Löse die Aufgabe und teile als Erster eine Lösung.