В Java Как переместить все 0 в конец массива, сохраняя порядок массива? [2 способа]

Опубликовано: 2020-12-31
В Java Как переместить все 0 в конец массива, сохраняя порядок массива? [2 способа]

Я играл с проблемой moving all 0's to end массивов в разных интервью в различных комбинациях. Иногда я прошу переместить все 0 в начало массива, отсортировать массив без какой-либо структуры данных и так далее.

В этом уроке мы рассмотрим простой пример перемещения всех нулей, чтобы закончить сохранение порядка массива. Есть два подхода.

Подход-1)

Логика разбиения QuickSort. Что такое точка разворота?

  • Pivot point — ключевой элемент алгоритма быстрой сортировки. Он выполняет и разбивает коллекцию вокруг точки поворота.
  • Он упорядочивает элементы массива, большие, чем точка опоры, перед ней, а элементы, большие, чем точка опоры, после нее.
  • Продолжить цикл для сортировки массива

Логика очень проста:

  • Итерация по массиву.
  • Если array[i] не равен 0, замените его текущим индексом.
  • Если array[i] == 0, просто пропустить цикл
  • В нашем случае 0 is a Pivot point .
  • Каждый раз, когда мы находим 0, значение счетчика будет увеличиваться, а элемент будет перемещаться перед точкой поворота.

Подход-2)

  • Создайте новый массив того же размера
  • Перебрать массив и пропустить добавление 0

Вот полная программа:

CrunchifyMoveAll0ToEnd.java

Вывод консоли Eclipse:

Дайте мне знать, если вы знаете лучший способ решить эту проблему. Я хотел бы услышать ваши мысли.