今天咱们来将点不一样的排序方式——二叉树排序。这个排序方法比较有意思,而且也便于操作。
本文参考《Python数据分析从入门到精通》张啸宇、李静,电子工业出版社 5.3.2 排序
文章目录
二叉树排序
二叉树排序的过程主要是二叉树的构建和遍历过程。本篇文章中所用二叉树遍历方法是二叉树的中序遍历。
中序遍历:如果二叉树不为空,则先访问左子树。然后访问根节点,最后访问右子树;否则,程序退出。
其主要代码如下:
def inorder(node): #中序遍历
if node.data:
if node.left:
inorder(node.left)
node.show()
if node.right:
inorder(node.right)
构建二叉树(关键部分)
二叉树排序主要是从无到有再到排序。所以构建二叉树便成了关键的一步。
从无到有:
例如:由一组数据3,5,7,20,43,2,15,30,则二叉树的构建过程如下:
1)、首先将第一个数据3放入根节点:
2)、将数据5与根节点中的数据3进行比较,由于5大于3,因此将5放入3的右子树中。
3)、将数据7与根节点中的数据3比较,由于7大于3,因此将7放入3的右子树中;由于3已经有了右子树5,所以将7与5进行比较,7大于5,应将7放入5的右子树中。
4)、将数据20与根节点数据3比较,由于20大于3,因此将20放入3的右子树中;重复比较,最终将20放入7的右子树中。
5)、将数据43与树中节点值进行比较,最终放入20的右子树中。
6)、将数据2与根节点数据3比较,2小于3,放入左子树中。
7)、同样,将数据15与30进行处理,最终形成如下图的而二叉树。
其主要代码如下:
def insert(node,value): #构建二叉树
if value