我是编程新手,需要一些帮助来编写快速排序算法。我设法提出了分区代码:
function partition(xs, p) {
if (is_empty_list(xs)) {
return [];
} else {
const lst1 = filter(x => x <= p, xs);
const lst2 = filter(x => x > p, xs);
return pair(lst1, lst2);
}
}
我知道我必须使用分区将列表分为2个列表,将它们单独排序,然后按以下顺序组合:排序左列表(具有values <= pivot),数据透视,排序右列表(具有values> pivot) )。 但是,我不知道如何写出递归部分
function quicksort(xs){
if (length(xs)<=1) {
return xs;
} else {
const pr= partition(tail(xs),head(xs));
}
我看过快速排序的示例,但是它们都是其他语言的,我发现很难理解这些示例。
非常感谢您的帮助,