算法人生
DawnDreamer
这个作者很懒,什么都没留下…
展开
-
堆排序算法
堆排序算法是最经典的排序算法之一,堆排序引入了一种算法设计技术:利用堆数据结构来管理算法执行中的信息。堆数据结构不只是在堆排序中有用,还可以构成一个有效的优先队列。堆数据结构是一种数组对象,它可以被视为一颗完全二叉树。树中每个结点与数组中存放该结点值的那个元素对应。树的每一层都是填满的,最后一层可能除外,如下图。 树的根为A[i],给定某个结点的下标i,其父结点: PARENT(i)原创 2015-08-11 12:13:52 · 428 阅读 · 0 评论 -
快速排序算法
快速排序是一种排序算法,对包含n个数的输入数组,最坏情况运行时间为Θ(n2)。虽然这个最坏情况运行时间比较差,但快速排序通常是用于排序的最佳实用选择,这是因为其平均性能相当好,期望的运行时间为Θ(nlgn),且其还能实现就地排序,不需要额外的存储空间。 快速排序的思想是:将数组A[p..r]划分成两个(可能空)子数组A[p..q-1]和A[q+1..r],使得A[p..q-1]中的每个元素都小于原创 2015-08-11 21:02:49 · 390 阅读 · 0 评论