python算法实现
ChenKai_164
这个作者很懒,什么都没留下…
展开
-
Python算法实现(二)—— 堆排序算法
二叉堆二叉堆本质上是一种完全二叉树,它分为两个类型:最大堆和最小堆。最大堆:最大堆任何一个父节点的值,都大于等于它左右孩子节点的值最小堆:最小堆任何一个父节点的值,都小于等于它左右孩子节点的值。二叉堆的根节点叫做堆顶,最大堆的堆顶是最大元素,最小堆的堆顶是最小元素。堆的自我调整插入节点我们首先有一个最大堆,我们希望给这个堆插入一个元素,我们首先直接将这个新元素放置到堆的最下部,此时发现最下面的子堆不满足最大堆的定义,依次向上调整:首先交换80和45,然后交换80和72,最终满足条件,此时插原创 2020-06-01 14:58:14 · 269 阅读 · 0 评论 -
Python算法实现(一)—— 快速排序算法
快速排序是我们在面试时常常遇到的算法,我们接下来首先介绍快速排序的基本思想,然后手撸一遍快速排序算法,最后我们介绍一些特殊情景的应用。快速排序介绍快速排序算法是冒泡排序算法的一种改进,其主要思想是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据比另一部分所有数据小,整个过程可以递归进行,最终使整个数据变成有序序列。但快速排序是一种不稳定的排序算法,即相同元素不能保序,因此在一些实际场景中不能进行使用。快排实现步骤在数据集之中,选择一个元素作为“基准”(pivot)· 可以选择第原创 2020-05-11 23:44:48 · 936 阅读 · 0 评论