Дано масив розміру N, всі елементи якого, крім першого, впорядковані
за зростанням. Зробити масив упорядкованим, перемістивши перший
елемент на нову позицію.
(мова С)
Ответы
Вот как это может выглядеть в коде на С:
----------------------------------------------------------------
#include <stdio.h>
#define N 10
int main(void) {
int array[N] = { 5, 1, 2, 3, 4, 6, 7, 8, 9, 10 }; // исходный массив
int first_element = array[0]; // запоминаем первый элемент
// ищем новую позицию для первого элемента
int new_position = 1;
while (new_position < N && first_element > array[new_position]) {
new_position++;
}
// сдвигаем элементы массива вправо, чтобы освободить место для первого элемента
for (int i = new_position; i > 0; i--) {
array[i] = array[i - 1];
}
array[0] = first_element; // помещаем первый элемент на новую позицию
// выводим упорядоченный массив
for (int i = 0; i < N; i++) {
printf("%d ", array[i]);
}
printf("\n");
return 0;
}
----------------------------------------------------------
Этот скрипт находит новую позицию для первого элемента массива, сдвигает элементы массива вправо, чтобы освободить место для первого элемента, и вставляет его на новую позицию. После этого скрипт выводит упорядоченный массив на экран