În Java Cum să muți toate 0-urile la sfârșitul matricei Păstrând ordinea unui tablou? [2 moduri]

Publicat: 2020-12-31
În Java Cum să muți toate 0-urile la sfârșitul matricei Păstrarea ordinii unei matrice? [2 moduri]

M-am jucat cu o problemă de a moving all 0's to end Arrays în diferite interviuri în diferite combinații. Uneori, cer să muți tot 0 în fața matricei, sortând o matrice fără nicio structură de date și așa mai departe.

În acest tutorial, vom trece peste un exemplu simplu de mutare a tuturor 0-urilor pentru a termina păstrarea unei ordini a unui Array. Există două abordări.

Abordare-1)

Logica de partiţionare QuickSort. Ce este Pivot Point?

  • Pivot point este un element cheie în algoritmul de sortare rapidă. Efectuează și partiționează colecția în jurul punctului pivot.
  • Aranjează o matrice elemente mai mari decât pivotul sunt înaintea lui, iar elementele mai mari decât pivotul sunt după el.
  • Continuați prin buclă pentru a sorta o matrice

Logica este foarte simpla:

  • Iterați printr-o matrice.
  • Dacă matricea[i] nu este egală cu 0, atunci schimbă-l cu indexul curent.
  • Dacă array[i] == 0, pur și simplu săriți bucla
  • În cazul nostru 0 is a Pivot point .
  • De fiecare dată când am găsit 0, pivotul contorului va fi incrementat și elementul va fi mutat înaintea punctului de pivotare.

Abordarea-2)

  • Creați o nouă matrice cu aceeași dimensiune
  • Iterați printr-o matrice și omiteți adăugarea 0

Iată un program complet:

CrunchifyMoveAll0ToEnd.java

Ieșire consola Eclipse:

Spune-mi dacă știi o modalitate mai bună de a rezolva această problemă. Mi-ar plăcea să aud gândurile tale.