Haskell --- 实现快读排序

版权声明:学习交流为主,未经博主同意禁止转载,禁止用于商用。 https://blog.csdn.net/u012965373/article/details/82951632

类型声明

quicksort :: (Ord a) => [a] -> [a]

边界条件:

空List。排过序的空List还是空List。接下来便是算法的定义:排过序的List就是令所有小于等于头部的元素在先(它们已经排过了序), 后跟大于头部的元素(它们同样已经拍过了序)。

quicksort :: (Ord a) => [a] -> [a]  
quicksort [] = []  
quicksort (x:xs) =  
  let smallerSorted = quicksort [a | a <- xs, a <= x] biggerSorted = quicksort [a | a <- xs, a > x]  
  in smallerSorted ++ [x] ++ biggerSorted

猜你喜欢

转载自blog.csdn.net/u012965373/article/details/82951632
今日推荐