En Java Comment déplacer tous les 0 à la fin d'un tableau en préservant l'ordre d'un tableau? [2 façons]

Publié: 2020-12-31
En Java, comment déplacer tous les 0 à la fin d'un tableau en préservant l'ordre d'un tableau ? [2 façons]

J'ai joué avec un problème de moving all 0's to end des tableaux dans différentes interviews dans diverses combinaisons. Parfois, je demande de déplacer tous les 0 vers l'avant du tableau, en triant un tableau sans aucune structure de données, etc.

Dans ce didacticiel, nous allons passer en revue un exemple simple de déplacement de tous les 0 pour terminer la préservation d'un ordre d'un tableau. Il existe deux approches.

Approche-1)

Logique de partitionnement QuickSort. Qu'est-ce qu'un point pivot ?

  • Pivot point est un élément clé de l'algorithme de tri rapide. Il effectue et partitionne la collection autour du point pivot.
  • Il organise un Array des éléments plus grands que le pivot avant lui, et des éléments plus grands que le pivot après lui.
  • Continuez dans la boucle pour trier un tableau

La logique est très simple :

  • Itérer dans un tableau.
  • Si array[i] n'est pas égal à 0, échangez-le avec l'index actuel.
  • Si array[i] == 0, sautez simplement la boucle
  • Dans notre cas, 0 is a Pivot point .
  • Chaque fois que nous trouvons 0, le compteur de pivot sera incrémenté et l'élément sera déplacé avant le point de pivot.

Approche-2)

  • Créer un nouveau tableau de même taille
  • Itérer dans un tableau et ignorer l'ajout de 0

Voici un programme complet :

CrunchifyMoveAll0ToEnd.java

Sortie de la console Eclipse :

Faites-moi savoir si vous connaissez une meilleure façon de résoudre ce problème. Je serais ravi d'entendre vos pensées.