Отсортировать по возрастанию четные элементы массива - C (СИ)
Формулировка задачи:
Отсортировать по возрастанию четные элементы массива.
Решение задачи: «Отсортировать по возрастанию четные элементы массива»
textual
Листинг программы
#include <stdio.h>
void Swap(int* a, int* b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
void Sort(int array[], unsigned size) {
unsigned i, j, min;
for (i = 0; i < size - 1; ++i) {
if (array[i] % 2 == 0) {
min = i;
for (j = i + 1; j < size; ++j) {
if ((array[j] % 2 == 0) && (array[j] < array[min])) {
min = j;
}
}
if (i != min) {
Swap(&array[min], &array[i]);
}
}
}
}
int main() {
int array[] = {8, 2, 3, 1, 5, 9, 4, 0, 6, 7};
unsigned i;
Sort(array, 10);
for (i = 0; i < 10; ++i) {
printf("%d ", array[i]);
}
printf("\n");
return 0;
}
Объяснение кода листинга программы
В данном коде реализована сортировка по возрастанию четных элементов массива.
- В функции Swap происходит обмен значениями двух указателей. Это необходимо для обмена значениями между переменными a и b.
- В функции Sort происходит сортировка массива. Она работает следующим образом:
- На каждой итерации цикла, начиная с первого элемента, проверяется, является ли текущий элемент четным числом.
- Если текущий элемент четный, то он помечается как минимальный элемент.
- Затем происходит поиск меньшего четного элемента, чем текущий минимальный элемент. Если такой элемент найден, то он становится новым минимальным элементом.
- Если текущий элемент не является минимальным, то он меняется местами с минимальным элементом.
- После завершения цикла, массив будет содержать четные элементы, отсортированные по возрастанию.
- В функции main создается тестовый массив и вызывается функция Sort для его сортировки.
- Затем происходит вывод отсортированного массива на экран.
- Значения переменных:
- array - массив, который необходимо отсортировать.
- size - размер массива.
- i - переменная-счетчик для цикла в функции main.
- min - переменная для хранения минимального элемента в текущей итерации цикла в функции Sort.
- j - переменная-счетчик для цикла во внутреннем цикле функции Sort.
- tmp - временная переменная для хранения значения переменной a в функции Swap.