W Javie Jak przenieść wszystkie zera na koniec tablicy Zachowując kolejność tablicy? [2 drogi]

Opublikowany: 2020-12-31
W Javie Jak przenieść wszystkie zera na koniec tablicy Zachowując kolejność tablicy? [2 drogi]

Bawiłem się problemem moving all 0's to end Arrays w różnych wywiadach w różnych kombinacjach. Czasami proszę o przeniesienie wszystkich 0 na początek tablicy, sortując tablicę bez żadnej struktury danych i tak dalej.

W tym samouczku omówimy prosty przykład przeniesienia wszystkich zer, aby zakończyć z zachowaniem kolejności tablicy. Istnieją dwa podejścia.

Podejście-1)

Logika partycjonowania QuickSort. Co to jest punkt obrotu?

  • Pivot point jest kluczowym elementem algorytmu szybkiego sortowania. Wykonuje i dzieli kolekcję wokół punktu obrotu.
  • Rozmieszcza elementy Array większe niż oś przed nią, a elementy większe niż oś po niej.
  • Kontynuuj pętlę, aby posortować tablicę

Logika jest bardzo prosta:

  • Iteruj przez tablicę.
  • Jeśli tablica[i] nie jest równa 0, zamień ją na bieżący indeks.
  • Jeśli array[i] == 0, po prostu pomiń pętlę
  • W naszym przypadku 0 is a Pivot point .
  • Za każdym razem, gdy znaleźliśmy 0, licznik obrotu zostanie zwiększony, a element zostanie przesunięty przed punkt obrotu.

Podejście-2)

  • Utwórz nową tablicę o tym samym rozmiarze
  • Przejdź przez tablicę i pomiń dodawanie 0

Oto kompletny program:

CrunchifyMoveAll0ToEnd.java

Dane wyjściowe konsoli Eclipse:

Daj mi znać, jeśli znasz lepszy sposób rozwiązania tego problemu. Chciałbym usłyszeć twoje myśli.