选择排序haskell
时间: 2023-12-14 07:32:33 浏览: 132
以下是使用选择排序算法在Haskell中对列表进行排序的示例代码:
```haskell
selectionSort :: Ord a => [a] -> [a]
selectionSort [] = []
selectionSort xs = let x = minimum xs
in x : selectionSort (delete x xs)
where delete _ [] = []
delete y (x:xs) | x == y = xs
| otherwise = x : delete y xs
```
这里我们定义了一个名为`selectionSort`的函数,它接受一个类型为`Ord a => [a]`的列表作为输入,并返回一个排序后的列表。该函数使用选择排序算法实现,它首先找到列表中的最小元素,然后将其添加到结果列表中,并递归地对剩余元素进行排序。
要使用此函数对列表进行排序,只需将列表作为参数传递给`selectionSort`函数即可。例如,要对列表`[3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]`进行排序,可以执行以下操作:
```haskell
selectionSort [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
```
输出结果为:
```
[1,1,2,3,3,4,5,5,5,6,9]
```
阅读全文