Сделать массив упорядоченным, переместив элемент - C (СИ)
Формулировка задачи:
Дан массив размера N, все элементы которого, кроме одного, упорядоченные по убыванию. Сделать массив упорядоченным, переместив элемент, нарушающий упорядоченность, на новую позицию.
Решение задачи: «Сделать массив упорядоченным, переместив элемент»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> void ins(int *arr, int n) { int i,j,v; for (i=1; i<n; i++) if (arr[i] < arr[i-1]) { v=arr[i]; j=i-1; while ((j>=0) && (arr[j]>v)) arr[j+1]=arr[j--]; arr[j+1]=v; } } int main(int argc, char *argv[]) { int Arr[]={1,2,12,16,18,19,7,20,21,25}; int n=sizeof(Arr)/sizeof(int); int i; for (i=0; i<n; i++) printf("%d ",Arr[i]); printf("\n"); ins(Arr,n); for (i=0; i<n; i++) printf("%d ",Arr[i]); printf("\n"); system("PAUSE"); return 0; }
Объяснение кода листинга программы
В данном коде реализуется функция сортировки массива методом пузырька.
- В функции ins() происходит сортировка массива arr по возрастанию.
- Переменная i используется как счётчик элементов массива.
- Переменная j используется для перемещения элементов в процессе сортировки.
- Переменная v используется как временное хранилище для элемента, который нужно переместить.
- Переменная n используется как размер массива.
- В функции main() создаётся массив Arr определённого размера.
- Выводится исходный массив на экран.
- Вызывается функция ins(), которая сортирует массив.
- Выводится отсортированный массив на экран.
- Выполняется команда system(
PAUSE
), предназначенная для приостановки работы программы до нажатия клавиши. - Возвращается 0, что означает успешное окончание работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д