算法
windowluffy
这个作者很懒,什么都没留下…
展开
-
堆排序
算法分析堆排序的时间,主要由建立初始堆和反复重建堆这两部分的时间开销构成,它们均是通过调用Heapify实现的。堆排序的最坏时间复杂度为O(nlogn)。堆序的平均性能较接近于最坏性能。由于建初始堆所需的比较次数较多,所以堆排序不适宜于记录数较少的文件。堆排序是就地排序,辅助空间为O(1),它是不稳定的排序方法。原创 2013-04-14 09:00:00 · 381 阅读 · 0 评论 -
辗转相除法------求 最大公因子
辗转相除法, 又名欧几里德算法(Euclidean algorithm)乃求两个正整数之最大公因子的算法。它是已知最古老的算法, 其可追溯至3000年前。原创 2013-04-15 09:08:41 · 586 阅读 · 0 评论 -
红黑树
介绍另一种平衡二叉树:红黑树(Red Black Tree),红黑树由Rudolf Bayer于1972年发明,当时被称为平衡二叉B树(symmetric binary B-trees),1978年被Leonidas J. Guibas 和Robert Sedgewick改成一个比较摩登的名字:红黑树。红黑树和之前所讲的AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,转载 2013-11-14 09:04:01 · 395 阅读 · 0 评论 -
【希尔】排序------ T(n) = O(n^1.5),S(n) = O(1) ---- 不稳定
public static void doSort(RS[] arrRS,int n_arrRS,int[] arrDelta,int n_arrDelta) { //每个delta增量,都进行一次【希尔插入】 //当delta增量为【1】时,【希尔插入】即等同【直接插入排序】 for(int i=0; i<n_arrDelta; ++i){ shellInsert(arrRS,原创 2013-12-05 10:37:47 · 748 阅读 · 0 评论 -
【快速】排序, T(n) = O(nlgn),O(n^2) S(n) = O(lgn) --- 不稳定
public static void quickSort(RS[] arrRS,int low,int high){ // 保存【分割点】 int partition; // 【段长】大于1 if(low < high){ // 一次分割,获得【分割点】 和 两个【子段】 partition = quickPartition(arrRS,low,h原创 2013-12-05 09:33:21 · 582 阅读 · 0 评论