#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)
и продолжить для следующих проходов.
Вы не дали точного определения того, что означает количество назначений и сравнений, поэтому я просто использовал критерий, который звучал разумно. Просто не забудьте использовать то, что фактически указано в вашем назначении — если в нем сказано что-то другое, то не ожидайте, что ваш ответ будет соответствовать моему.