为我用python写一个函数,使其能够接受数组,并且输出经过bst排序过后的数组
时间: 2024-02-12 11:07:14 浏览: 68
基于python的排序算法实现
好的,这里是一个使用二叉搜索树(Binary Search Tree)对数组进行排序的 Python 函数:
```python
class Node:
def __init__(self, val):
self.left = None
self.right = None
self.val = val
def insert(node, val):
if node is None:
return Node(val)
elif val < node.val:
node.left = insert(node.left, val)
else:
node.right = insert(node.right, val)
return node
def inorder(node, res):
if node:
inorder(node.left, res)
res.append(node.val)
inorder(node.right, res)
def bst_sort(arr):
root = None
for val in arr:
root = insert(root, val)
res = []
inorder(root, res)
return res
```
函数 `bst_sort(arr)` 接受一个数组 `arr`,使用 `insert` 函数将数组中的每个元素插入到二叉搜索树中,并使用 `inorder` 函数对树进行中序遍历,将遍历结果存储在一个数组 `res` 中并返回。这个 `res` 数组就是经过排序后的数组。
阅读全文