来源:ecmascript 2016的子语言中的Quicksort算法

时间:2018-09-25 13:03:07

标签: quicksort

我是编程新手,需要一些帮助来编写快速排序算法。我设法提出了分区代码:

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));
     
        
}

我看过快速排序的示例,但是它们都是其他语言的,我发现很难理解这些示例。

非常感谢您的帮助,

0 个答案:

没有答案