算法与数据结构
文章平均质量分 72
zzwab99
这个作者很懒,什么都没留下…
展开
-
快速排序中的堆栈深度
快速排序的伪代码如下: QUICKSORT(A, p, r) if p < r q <- PARTITION(A, p, r) QUICISORT(A, p, q-1) QUICKSORT(A, q + 1, r)可采用尾递归的方式减小堆栈的深度,即采用迭代控制结构替代第二次递归调用,尾递归在大多数的编译程序中都被采用。伪代码如下: QU原创 2012-11-07 10:02:48 · 1653 阅读 · 0 评论 -
Young氏矩阵
m*n的Young氏矩阵定义如下: m*n的矩阵每一行,每一列的数据有序∞表示不存在的元素 如: 2 3 5 12 4 8 14 ∞ 9 16 ∞ ∞ ∞ ∞ ∞ ∞ 1. 如何在O(m+n)时间复杂度的条件下实现删除最小元素,并使删除后的矩阵保持为Young氏矩阵? 将矩阵类比成“二叉树”原创 2012-11-08 17:05:25 · 369 阅读 · 0 评论 -
计数排序:时间复杂度O(n+k),空间复杂度O(k)
问题描述 假设n个记录中每个关键字都介于0到k-1之间,修改计数排序算法,使得算法满足: 时间复杂度:O(n+k),空间复杂度:n+O(k) 问题分析 原计数排序算法中,需借助另一个大小为n的数组进行排序,不能做到原地排序,如何实现原地排序? 原计数排序算法中,对数组中的每个元素,都已计算出了比其小或相等的元素个数,即确定了其最终位置。每个元素都已确定了自身的最终位置,但如何实现原地原创 2012-11-14 12:45:29 · 3839 阅读 · 0 评论