haskell实现插入排序
时间: 2023-12-07 11:39:23 浏览: 150
red-black-tree:在Haskell中实施的红黑树
以下是Haskell实现插入排序的代码和解释:
```haskell
insert :: Int -> [Int] -> [Int]
insert x [] = [x]
insert x (y:ys)
| x < y = x:y:ys
| otherwise = y : insert x ys
insertSort :: [Int] -> [Int]
insertSort [] = []
insertSort (x:xs) = insert x (insertSort xs)
```
解释:
首先定义了一个名为`insert`的函数,它接受一个整数和一个整数列表作为参数,并将该整数插入到该列表中的正确位置。如果列表为空,则返回一个只包含该整数的列表。否则,我们将该整数与列表中的第一个元素进行比较。如果该整数小于第一个元素,则将该整数插入到列表的开头。否则,我们将该整数插入到列表的其余部分中,并递归地调用`insert`函数。
然后定义了一个名为`insertSort`的函数,它接受一个整数列表作为参数,并返回一个已排序的列表。如果列表为空,则返回一个空列表。否则,我们将列表的第一个元素插入到其余部分中,并递归地调用`insertSort`函数。
阅读全文