In Java Wie verschiebt man alle Nullen an das Ende des Arrays, um die Reihenfolge eines Arrays beizubehalten? [2 Wege]

Veröffentlicht: 2020-12-31
In Java Wie verschiebt man alle Nullen an das Ende des Arrays, um die Reihenfolge eines Arrays beizubehalten? [2 Wege]

Ich habe mit dem Problem gespielt, in verschiedenen Interviews in verschiedenen Kombinationen moving all 0's to end von Arrays zu verschieben. Manchmal bitte ich darum, alle 0 an den Anfang des Arrays zu verschieben, ein Array ohne Datenstruktur zu sortieren und so weiter.

In diesem Tutorial werden wir ein einfaches Beispiel für das Verschieben aller Nullen durchgehen, um die Reihenfolge eines Arrays zu erhalten. Es gibt zwei Ansätze.

Ansatz-1)

QuickSort Partitionierungslogik. Was ist Pivot Point?

  • Pivot point ist ein Schlüsselelement im Quick Sort-Algorithmus. Es führt und partitioniert die Sammlung um den Drehpunkt herum.
  • Es ordnet ein Array Elemente an, die größer als der Pivot sind, und Elemente, die größer als der Pivot sind, danach.
  • Fahren Sie mit der Schleife fort, um ein Array zu sortieren

Logik ist ganz einfach:

  • Durchlaufen Sie ein Array.
  • Wenn array[i] nicht gleich 0 ist, dann tausche es mit dem aktuellen Index aus.
  • Wenn array[i] == 0, Schleife einfach überspringen
  • In unserem Fall 0 is a Pivot point .
  • Jedes Mal, wenn wir 0 gefunden haben, wird der Zähler-Pivot inkrementiert und das Element wird vor den Pivot-Punkt verschoben.

Ansatz-2)

  • Erstellen Sie ein neues Array mit derselben Größe
  • Durchlaufen Sie ein Array und überspringen Sie das Hinzufügen von 0

Hier ist ein vollständiges Programm:

CrunchifyMoveAll0ToEnd.java

Ausgabe der Eclipse-Konsole:

Lassen Sie mich wissen, wenn Sie einen besseren Weg kennen, um dieses Problem zu lösen. Ich würde gerne Ihre Meinung hören.