议题:快速排序实现之一(单向遍历)分析:算法原理:主要由两部分组成,一部分是递归部分QuickSort,它将调用partition进行划分,并取得划分元素P,然后分别对P之前的部分和P
之后的部分递归调用QuickSort;另一部分是partition,选取划分元素P(随机选取数组中的一个元素,交换...
分类:
其他好文 时间:
2014-06-03 10:00:23
阅读次数:
392
议题:快速排序算法实现之三(三路划分遍历,解决与划分元素相等元素的问题)分析:算法原理:使用三路划分策略对数组进行划分(也就是荷兰国旗问题,dutch
national flag problem)。这个实现是对实现二的改进,它添加处理等于划分元素的值的逻辑,将所有等于划分元素的值集中在一起,并且以后...
分类:
其他好文 时间:
2014-06-03 09:51:51
阅读次数:
386
议题:快速排序实现之五(非递归实现,短序列优先处理,减少递归栈大小)分析:算法原理:此算法实现适用于系统栈空间不足够快速排序递归调用的需求,从而使用非递归实现快速排序算法;使用显示下推栈存储快速排序中的每一次划分结果
(将left和right都压入堆栈),并且首先处理划分序列较短的子序列(也就是在得...
分类:
其他好文 时间:
2014-06-03 08:23:29
阅读次数:
367
该文章对迪杰斯特拉与双向迪杰斯特拉的实现结果进行了简单的分析。...
分类:
其他好文 时间:
2014-05-14 21:46:00
阅读次数:
299
由上一章的内容可知软件质量的重要特征之一就是能够高效的利用资源(运行效率),因此我们就要考虑如何创建出能够高效利用CPU及内存的数据结构与算法。而算法分析的目的就是为了让我们能够认识到算法对于资源的利用效率。我们要想分析算法的效率,就需要找到一个评价算法效率的标准及方法。一般我们如果能快速的利用CP...
分类:
其他好文 时间:
2014-05-13 17:37:47
阅读次数:
231
定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数,分析算法复杂度当时答的时候用的方法太渣了,思路是每次左移一位,移动K次。12345678→23456781→34567812→45678123这是我写...
分类:
其他好文 时间:
2014-05-08 07:06:24
阅读次数:
300
算法设计中经常会用到递归,利用递归式的方法可以清晰地显示算法的整个过程,而对于分析算法的复杂度,解递归式就有了用处,这里的方法来自于《算法导论》。
1. 代换法
代换法只能用于解那种很容易猜的情形,它可用来确定一个递归式的“O”和“Ω”界。
举例,确定递归式 T(n) = 2*T(└n/2┘) + n 的一个“O”界
1.1 先猜测有某个界存在
由于这个递归式与合并排序的计算...
分类:
其他好文 时间:
2014-05-07 16:07:15
阅读次数:
413