Предмет: Информатика, автор: maks7474

Помогите срочно распишите почему такой ответ

Приложения:

ragoon: Нужно знать исходные данные.
maks7474: Их нет
maks7474: Вот фрагмент
maks7474: И все
ragoon: Ну что, сочувствую...
ragoon: Я Вам больше скажу, что бы разобрать, ЧТО делает этот изысканный алгоритм, надо бы знать, как устроены индексы в массиве. В языке С, например, индекс считается с нуля, и а[3] будет ЧЕТВЁРТЫМ по счёту элементом массива, а в Паскале индекс считается ОТКУДА УГОДНО, например, массив может быть объявлен как A[347..548]. Так что задача не имеет решения.

Ответы

Автор ответа: adisin
0

Ответом будет (36, 27, 45, 62, 61, 54).


Почему?

Мы начинаем сортировку с четвёртого элемента массива исходя из условия цикла, поэтому первые 3 числа не сортируются.

Раз это упорядочивание по убыванию, то это единственный ответ, в котором последние элементы массива убывают, так что ответить на это можно не особо смотря на код.


Однако, чтоб Вам было проще понять, как это работает, то предположим, что массив был таким: (36, 27, 45, 54, 62, 61).


Что делает код каждый цикл?


Мы сравниваем a[i] и a[i+1], то есть, если взять a[3] и a[4], то код начнёт сравнивать 54 и 62. Если второе число больше первого, то он выполнит последующие инструкции. В нашем случае так и получается.

1. Мы записываем в переменную s значение переменной a[i], то есть a[3], то есть 54.

2. Записываем в переменную a[i], или a[3], значение, хранящееся в a[i+1], или a[4], то есть теперь a[3] не 54, а 62.

3. Затем мы записываем в a[i+1], или a[4], значение, которое хранится в переменной s, то есть 54.


Теперь наш массив (36, 27, 45, 62, 54, 61).


Следующим шагом код сравнит 54 и 61. Он снова увидит, что второе число выше первого и сделает всё то же самое, поменяв местами числа.

Похожие вопросы
Предмет: Математика, автор: bjalixbjmd