In Java come spostare tutti gli 0 alla fine dell'ordine di conservazione dell'array di un array? [2 modi]

Pubblicato: 2020-12-31
In Java come spostare tutti gli 0 alla fine dell'ordine di conservazione dell'array di un array? [2 modi]

Ho giocato con il problema di moving all 0's to end di Array in diverse interviste in varie combinazioni. A volte chiedo di spostare tutti gli 0 davanti all'array, ordinando un array senza alcuna struttura di dati e così via.

In questo tutorial, esamineremo un semplice esempio di spostamento di tutti gli 0 per terminare la conservazione di un ordine di un array. Ci sono due approcci.

Approccio-1)

Logica di partizionamento QuickSort. Cos'è il punto pivot?

  • Pivot point è un elemento chiave nell'algoritmo di ordinamento rapido. Esegue e partiziona la raccolta attorno al punto pivot.
  • Dispone gli elementi Array più grandi del pivot prima di esso e gli elementi più grandi del pivot dopo di esso.
  • Continua nel ciclo per ordinare una matrice

La logica è molto semplice:

  • Iterare attraverso un array.
  • Se array[i] non è uguale a 0, scambialo con l'indice corrente.
  • Se array[i] == 0, salta semplicemente il ciclo
  • Nel nostro caso 0 is a Pivot point .
  • Ogni volta che troviamo 0, il contatore pivot verrà incrementato e l'elemento verrà spostato prima del punto pivot.

Approccio-2)

  • Crea un nuovo array con le stesse dimensioni
  • Scorri un array e salta l'aggiunta di 0

Ecco un programma completo:

CrunchifyMoveAll0ToEnd.java

Uscita console Eclipse:

Fammi sapere se conosci un modo migliore per risolvere questo problema. Mi piacerebbe sentire i tuoi pensieri.