二叉树实现快速排序
Posted java技术大本营
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树实现快速排序相关的知识,希望对你有一定的参考价值。
二叉树在我们印象中是这样的
快速排序在我们的印象中是这个样子的:
两者看起来长的不一样,结构也不一样,怎么就会扯上关系呢, 按我们一惯的思路,在想着计算机怎么做之前,我们要先用人脑想出来,然后计算机,只是模拟我们而己。
快速排序的主要思路是:选定一个数字A(一般取随机数列的每一个数字),然后把比A小的数字放到A的左边,把比A大的数字放到A的右边。然后在左边和右边再执行相应的选数字,站队的操作。
拿到一个初始随机序列:
6,9,4,5,8,2,3,7,1。
我们选定一个数字,取第一个数:6。 然后现在先不想什么先右边循环,然后换位置,再左边循环然后换位置。
想象下现在手上就一张白纸,然后我们开始按快速排序的思路,先把6放中间,然后从前往后一个个看,看到比6小的就抄在6的左边,看到比6大的就抄在6的右边。第一次抄下来的结果如下图:
这样写完之后,是没新的序列了,就是看起来怪怪的,我们给他们加上连接线就会发现,变成了一棵二叉树:
新的顺序
可以按二叉树的中序遍历(先左再中后右)来走一遍。
这就是二叉树和快速排序之间的关系。
明天小编带着大家一起看看
用代码写 二叉树实现快速排序
文字:微笑的小小刀
排版:花音
以上是关于二叉树实现快速排序的主要内容,如果未能解决你的问题,请参考以下文章
前端开发必备技能 —— 数据结构 && 算法 && 手撕JavaScript/ES6