Дано масив розміру 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;
}
----------------------------------------------------------
Этот скрипт находит новую позицию для первого элемента массива, сдвигает элементы массива вправо, чтобы освободить место для первого элемента, и вставляет его на новую позицию. После этого скрипт выводит упорядоченный массив на экран