Сортировка массива по четности: несколько методов перестановки элементов

Метод 1: двухточечный подход

  • Инициализировать два указателя: один в начале массива (левый указатель), а другой в конце массива (правый указатель).
  • Увеличивайте левый указатель, пока не встретите нечетное число.
  • Уменьшайте правый указатель, пока не встретите четное число.
  • Поменяйте местами элементы у левого и правого указателей.
  • Повторяйте шаги 2–4, пока левый указатель не окажется над правым указателем.
  • Теперь массив отсортирован по четности.

Метод 2: подход к секционированию

  • Используйте алгоритм разделения, аналогичный тому, который используется при быстрой сортировке.
  • Инициализировать два указателя: один в начале массива (левый указатель), а другой в конце массива (правый указатель).
  • Перемещайте левый указатель вправо, пока не встретите нечетное число.
  • Перемещайте правый указатель влево, пока не встретите четное число.
  • Если левый указатель по-прежнему находится слева от правого указателя, поменяйте местами элементы у левого и правого указателей.
  • Повторяйте шаги 3–4, пока левый указатель не окажется над правым указателем.
  • Теперь массив отсортирован по четности.

Метод 3: вспомогательные массивы

  • Создайте два вспомогательных массива: один для четных чисел, другой для нечетных чисел.
  • Перейти исходный массив и поместить четные числа в четный массив, а нечетные числа в нечетный массив.
  • Объедините четный и нечетный массив, чтобы получить отсортированный по четности массив.

Метод 4. Перестановка на месте

  • Инициализировать два указателя: один в начале массива (левый указатель), а другой в конце массива (правый указатель).
  • Перемещайте левый указатель вправо, пока не встретите нечетное число.
  • Перемещайте правый указатель влево, пока не встретите четное число.
  • Поменяйте местами элементы у левого и правого указателей.
  • Повторяйте шаги 2–4, пока левый указатель не окажется над правым указателем.
  • Теперь массив отсортирован по четности: четные числа появляются раньше нечетных.