Negativ - nach links!
Nikita Smirnov
Negativ - nach links!
Negativ - nach links! Gegeben sei ein Array aus ganzen Zahlen mit N Elementen. Verschieben Sie alle negativen Array-Werte an den Anfang des Arrays, ohne ihre relative Position zu ändern. Das heißt, jedes negative Element muss relativ zu allen negativen Elementen in derselben Reihenfolge sein, und jedes nicht negative Element muss relativ zu allen nicht negativen Elementen in derselben Reihenfolge sein. Spezifikationen Eingabe Die erste Zeile des Eingabestroms enthält die Zahl N (1≤N≤104). Die zweite Zeile enthält N ganze Zahlen ai (1≤i≤N, −105≤ai≤105) - Elemente der Folge. Ausgabe Gibt die Elemente des verarbeiteten Arrays getrennt durch ein Leerzeichen aus. Beispiel: Eingangsdaten Ausgangsdaten 6 -2 -4 -6 1 3 5 1 -2 3 -4 5 -6
Antworten:
Andreas
Die dümmste Lösung ist eine banale Blasensortierung mit einem nicht standardmäßigen Vergleich: for (int i = n - 1; i > 0; --i) { for (int j = 0; j < i; ++j) { if (a[j ] >= 0 && a[j + 1] < 0) { int t = a[j]; a[j] = a[j + 1]; a[j + 1] = t; } } }