Уточнение алгоритма рекурсивной сортировки - PullRequest
3 голосов
/ 01 апреля 2011

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

Определить функцию select , которая принимает список целых чисел и возвращает список, глава которого являетсянаименьший элемент в списке, хвост которого является результатом рекурсивной сортировки списка, полученного путем удаления наименьшего элемента списка из списка.

Означает ли это что-то вроде «первого элемента списка»самый маленький, и последний элемент списка - это int, который больше, чем самый маленький, и меньше, чем все остальное "?

Например, если у меня есть этот список:

[ 2, 3, 4, 6, 8, 7]

, должен ли ответ быть

[2, 4, 6, 8, 7, 3]

или

[2, 4, 6, 7, 8, 3]

?

Ответы [ 4 ]

2 голосов
/ 01 апреля 2011

То, что вы хотите: Учитывая список [5 3 9 8 1], вы хотите следующее:

  • Список, в котором голова наименьшая (1), а хвост - эторезультат сортировки остальной части списка ([5 3 9 8]).
  • Хвост исходного списка имеет заголовок как наименьший (3), а хвост - результат сортировки [5 98]
  • и т. Д.
2 голосов
/ 01 апреля 2011

Это означает, что вы должны получить отсортированный список [2, 3, 4, 6, 7, 8].Ожидаемый ответ - не список, а реализация.Этот вопрос говорит вам , как должна работать реализация, а именно, извлекая наименьший элемент, затем вызывая себя для сортировки остатка и, наконец, склеивая вещи.

1 голос
/ 01 апреля 2011

"список, голова которого является наименьшим элементом в списке"

Хорошо, это просто

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

Таким образом, результат должен быть отсортирован: [2, 3, 4, 6, 7, 8].

(Ваш профессор хочет, чтобы вы внедрили сортировку выбора .)

0 голосов
/ 01 апреля 2011

Кажется, что вопрос просит вас отсортировать массив в порядке возрастания (например, sort ([5,4,3]) ==> [3,4,5]).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...