Sortierung einer ArrayList aus gemischten Ganzzahlen und Strings unter Beibehaltung der relativen Reihenfolge von Strings und Ganzzahlen

8

Betrachten Sie eine Arraylist wie unten angegeben

%Vor%

Dies muss nach

sortiert werden %Vor%

Sortieren Sie die Zeichenfolgen alphabetisch. Sortieren Sie die Nummern aufsteigend. Beachten Sie jedoch folgende Bedingung:

  • Überall dort, wo eine ganze Zahl in der unsortierten Liste vorhanden ist, muss es eine ganze Zahl in der sortierten Liste sein.
  • Wo immer eine Zeichenfolge in der unsortierten Liste vorhanden ist, muss sie eine Zeichenfolge in der sortierten Liste sein.

Beachten Sie, dass im obigen Beispiel alle Ganzzahlen aufsteigend sortiert sind und alle Zeichenfolgen aufsteigend sortiert sind, aber die relativen Positionen von ganzen Zahlen und Zeichenfolgen unverändert sind.

    
Kaleid-o-scope 13.06.2013, 22:47
quelle

2 Antworten

8

Eine Option besteht darin, Folgendes zu tun:

  • Erstellen Sie eine neue Liste aller Ganzzahlen in der ursprünglichen Liste.
  • Erstellen Sie eine neue Liste aller Zeichenfolgen in der ursprünglichen Liste.
  • Sortiere jede Liste.
  • Iterieren Sie über die ursprüngliche Liste, indem Sie Folgendes tun:
    • Wenn das Element eine Ganzzahl ist, schreiben Sie die nächste ungeschriebene Ganzzahl aus der sortierten Integer-Liste zurück.
    • Wenn das Element eine Zeichenfolge enthält, schreiben Sie die nächste nicht geschriebene Zeichenfolge aus der Liste der sortierten Zeichenfolgen zurück.

Das ist ziemlich effizient - Sie müssen nur zwei Arten machen. Hier ist ein Code dafür:

%Vor%

Hoffe, das hilft!

    
templatetypedef 13.06.2013 22:53
quelle
3

Pseudocode:

%Vor%     
Floris 13.06.2013 22:54
quelle

Tags und Links