![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 79
sh805499910
这个作者很懒,什么都没留下…
展开
-
Python实现快速排序算法
快速排序也是使用了分治思想的排序方法,但与归并排序不一样的是“分”的时候的依据。归并排序“分”的依据是对半分,不管大小,而快速排序则是选定数组中的一个值,以这个值为依据,将数组分为三个部分:小于这个值的部分,大于等于这个值的部分,这个值。这样就以选定的点将数组分为两部分(小于值的部分,大于等于值的部分),然后再通过迭代对这两个部分分别继续执行这样一个“分”的过程,直至最后只剩下1-2个元素,即无法...原创 2018-09-18 19:17:27 · 6976 阅读 · 0 评论 -
计数排序的python实现
无论是归并排序、堆排序或是快速排序,它们都是通过元素之间的比较进行排序,所以在这些排序方法的执行过程中,数组自身的性质(数组中各元素的排列顺序)会直接影响到时间或者内存成本的大小。这类排序算法称为比较排序,这些排序算法的下界都是nlgnnlgnnlgn。计数排序不是比较排序,它的执行效果不依赖于愿数组本身元素的排列。计数排序的思想是假设大小为nnn的数组中的所有元素都是在区间[0,k)[0,k...原创 2018-09-19 14:55:15 · 453 阅读 · 0 评论 -
堆排序算法的实现
1、什么是堆 “(二叉)堆是一个数组,它可以被看成一个近似的完全二叉树。树上的每一个节点对应数组中的一个元素。除了最底层外,该树是完全充满的,而且是从左到右填充”。这是算法导论里对堆的定义,说得很清晰明了,当然最好还是得上个图,所以这里就顺便也从算法导论里盗个图了。。。。 二叉堆可以分为两种形式,最大堆和最小堆。在这两种堆中,节点的值都要满足堆的性质,同时在最大堆中,除了根以外的所有节...原创 2018-09-14 13:34:11 · 1321 阅读 · 0 评论