Здравствуйте, Аноним, Вы писали:
А>Господа, подскажите, как лучше всего написать алгоритм быстрой сортировки массива (quicksort) на Nemerle.
У меня такая штука получилась:
public qsort(arr: list[int], distinct: bool): list[int]
{
| ([], _) => [];
| (x::[], _) => [x];
| (x::xs, true) => qsort($[y | y in xs, y<x], distinct) + [x] + qsort($[y | y in xs, y>x], distinct);
| (x::xs, false) => qsort($[y | y in xs, y<=x], distinct) + [x] + qsort($[y | y in xs, y>x], distinct);
}
Если второй параметр true, то заодно и повторяющиеся элементы убираются...