Сортировка по выбору — показать каждый промежуточный массив

#sorting #selection

#сортировка #выбор

Вопрос:

Опишите сортировку по выбору и отсортируйте массив [7, 4, 8, 2, 9 ,1] с ним (в порядке возрастания), показывая каждый промежуточный массив, в котором выбран новый элемент. Для каждого промежуточного массива укажите, какая часть массива отсортирована. Также укажите, сколько сравнений и присвоений переменных необходимо в общей сложности для каждого промежуточного массива.

Мой ответ: [7, 4, 8, 2, 9, 1]

7, 4, 8, 2, 1, 9 ( 1-й проход) 7, 4, 1, 2, 8, 9 ( 2-й проход) 2, 4, 1, 7, 8, 9 ( 3-й проход) 2, 1, 4, 7, 8, 9 ( 4-й проход) 1, 2, 4, 7, 8, 9 ( 5-й проход)

Что я делаю, так это нахожу наибольшее число в массиве и помещаю его в конец массива.

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

Приветствия.

Ответ №1:

Что ж, вы отсортировали массив нормально, но забыли о «Для каждого промежуточного массива укажите, какая часть массива отсортирована. Также укажите, сколько сравнений и присвоений переменных необходимо в общей сложности для каждого промежуточного массива.»

Например, первый проход:

промежуточный массив: [7,4,8,2,1,9]

отсортированная часть: a[5:5] = [9]

требуется сравнений: 5 (сравнить 4amp;7, 8amp;7, 2amp;8, 1amp;8, 8amp;9)

присвоения переменных: 4 (max : = 7, max := 8, max := 9, last_position := max)

и продолжить для следующих проходов.

Вы не дали точного определения того, что означает количество назначений и сравнений, поэтому я просто использовал критерий, который звучал разумно. Просто не забудьте использовать то, что фактически указано в вашем назначении — если в нем сказано что-то другое, то не ожидайте, что ваш ответ будет соответствовать моему.