Mein Code funktioniert zum Sortieren von positiven und negativen Zahlen, aber ich bin mir nicht sicher, wie die Nullen sortiert werden sollen. Die Negative sollten auf der linken Seite, Nullen in der Mitte und Positive auf der rechten Seite sein. Die Reihenfolge spielt keine Rolle.Sortierung eines int-Arrays nach Vorzeichen (positiv, null, negativ) ohne Sortiermethode
Antwort
eine Hilfs Swap-Methode verwenden, um die Nullen wie so umgehen kann:
public static int[] sortBySign(int[] array) {
int counter = 0;
for (int i = 0; i < array.length; i++) {
if (array[i] < 0) {
swap(array, counter++, i);
}
}
for (int i = counter; i < array.length; i++) {
if (array[i] == 0) {
swap(array, counter++, i);
}
}
return array;
}
private static void swap(int array[], int index1, int index2) {
int temp = array[index2];
for (int i = index2; i > index1; i--) {
array[i] = array[i - 1];
}
array[index1] = temp;
}
Probieren Sie es here!
Eigentlich Ihr Code nicht richtig sort
die positiven Zahlen, vielleicht, weil es nicht genug Anzahl tut von iterations
. Um alle Zahlen zu sortieren (einschließlich Null), würde ich empfehlen zurück zur Blase Art fallen, z.B .:
public static void sort(int[] array) {
for (int i = 0; i < array.length; i++) {
for (int j = 1; j < (array.length - i); j++) {
if (array[j - 1] > array[j]) {
int temp = array[j - 1];
array[j - 1] = array[j];
array[j] = temp;
}
}
}
}
Auch brauchen wir nicht zu return
nichts, da die Änderungen nur auf die tatsächliche Anordnung vorgenommen werden.
bearbeiten
Eine andere Lösung das Array mit einer for-Schleife zu sortieren, (das heißt O(n)
Komplexität):
public static void sort(int[] array) {
boolean continue = false;
for (int i = 0; i < array.length - 1; i++) {
if (array[i] < array[i + 1]) {
int temp = array[i];
array[i] = array[i + 1];
array[i + 1] = temp; // swap values
continue = true;
}
if (i == array.length - 2 && again) {
i = 0;
continue = false;
}
}
}
Danke. Ich habe versucht, es so zu implementieren, dass es O (n) ist. – laura815
@ laura815 Ich habe eine andere Lösung hinzugefügt. –
- 1. Ist null negativ oder positiv?
- 2. Konvertieren eines Werts von negativ nach positiv oder positiv in negativ in JavaScript?
- 3. Positiv zu negativ && Negativ zu positiv in negativer Basis
- 4. lookarounds positiv negativ lookbehind lookahead
- 5. Regex-Dezimalbereichsausdruck. Negativ zu Positiv
- 6. SORT ARRAY positiv negativ Abstandswert
- 7. Berechnen Sie die Potenz eines beliebigen Exponenten (negativ oder positiv)
- 8. HTML5-Eingabebereich von positiv bis negativ
- 9. FDR Berechnung mit True positiv, negativ und falsch positiv negativ in R?
- 10. Nummer von negativ zu positiv ändern.
- 11. Füllen eines DataFrame mit "Vorzeichen" -Zahlen
- 12. Sortierung Array von Personen mit Sortiermethode
- 13. QVariant/ohne Vorzeichen Vergleiche
- 14. Wie identifiziert man IDs, deren Werte von positiv auf null oder negativ übergehen?
- 15. Überprüfen, ob der Rückgabewert positiv oder negativ ist
- 16. Positiv/Negativ Look-Ahead mit grep und Perl
- 17. Mat Element Bulk Modifikation: negativ auf 0, positiv auf 1
- 18. konvertieren lange in int, halten positiv/negativ/0
- 19. Prüfen, ob Integer positiv oder negativ ist - Objective C
- 20. Negativ und positiv in gleicher Richtung in Highchart
- 21. Unterscheidung zwischen positiv und negativ unendlich in opencl
- 22. Pearson Korrelation Kovarianz zeigt positiv, wenn negativ korreliert
- 23. C- Sortieren eines Arrays von Zeigern auf ganze Zahlen, die positiv oder negativ sein können
- 24. Machen Sie einen Währungswert in gridview negativ, wenn positiv und umgekehrt
- 25. Ganze Zahl ohne Vorzeichen Bitfeld Verschiebung Ausbeuten Ganzzahl mit Vorzeichen
- 26. Wie Positiv/Negativ Anzahl Zusammengefasst ohne Spalte Neu Hinzufügen in Excel Pivot-Tabelle
- 27. Welche Sortiermethode verwenden Sie?
- 28. Sortierung eines Datenrahmens nach Index
- 29. gibt es keinen Operator in c, um das Vorzeichen eines int float usw. von negativ zu positiv oder umgekehrt zu ändern?
- 30. C++ Vergleich zwischen Ganzzahlausdrücken mit Vorzeichen und ohne Vorzeichen
Haben Sie den Code in Ihrem Debugger trat? Dies wird Ihnen helfen, selbst zu bestimmen, was passieren muss. –