Heapsort (堆排序)是最经典的排序算法之一,在google或者百度中搜一下可以搜到很多非常详细的解析。同样好的排序算法还有quicksort(快速排序)和merge sort(归并排序),选择对这个算法进行分析主要是因为它用到了一个非常有意思的算法技巧:数据结构 - 堆。而且堆排其实是一个看...
分类:
编程语言 时间:
2014-09-16 23:29:41
阅读次数:
406
常见排序算法(冒泡、选择、插入、快速、归并C++实现)
#include
using namespace std;
// 冒泡排序
void bubbleSort (int data[], size_t size) {
for (size_t i = 0; i < size - 1; ++i) {
bool ordered = true;
for (size_t j = 0; j <...
分类:
编程语言 时间:
2014-09-16 22:09:41
阅读次数:
272
赛马问题本文地址: http://blog.csdn.net/caroline_wendy赛马问题, 有25匹马, 选择其中3匹最快的, 其中5匹比赛一次. 如何选择?解法:类似K路归并排序, 分为5组进行比赛, 选出5个第一名, 然后进行比赛, 确定一个, 并把第一名取走, 再从第一名的队列中, 选择第二名, 放入其中, 进行比赛.依次类推, 选择最优的3匹马.共需要8次比较, 5次初选, 3次...
分类:
其他好文 时间:
2014-09-16 19:04:40
阅读次数:
204
一 插入排序简单插入排序希尔排序二 快速排序三 选择排序简单选择排序树形选择排序堆排四 归并排序五 基数排序
分类:
其他好文 时间:
2014-09-16 10:32:30
阅读次数:
178
归并排序分析:
最优时间复杂度:O(n)
最坏时间复杂度:O(nlog2n)
平均时间复杂度:O(nlog2n)
最差空间复杂度:O(n)
稳定性:稳定
归并排序C语言实现 递归与非递归...
分类:
其他好文 时间:
2014-09-15 12:57:28
阅读次数:
140
忙活了一个多月,公司注册的手续终于办完了. 马上又要忙着记账报税了. 今天看了这篇李克强拿起废弃公章感叹:不知公章束缚多少人李克强前往滨海新区行政审批局详细了解简政放权、行政审批制度改革的进展情况。4个月前,滨海新区成立了全国首个“行政审批局”,将分散在18个不同单位的216项审批职责归并为“一局一...
分类:
其他好文 时间:
2014-09-14 02:30:36
阅读次数:
212
很多人对递归的理解不太深刻。一直就停留在“自己调用自己”的程度上。这其实这只是递归的表象(严格来说连表象都概括得不全面,因为除了“自己调用自己”的递归外,还有交互调用的递归)。而递归的思想远不止这么简单。金光大道娱乐城递归,并不是简单的“自己调用自己”,也不是简单的“交互调用”。它是一种分析和解决问...
分类:
其他好文 时间:
2014-09-13 21:23:45
阅读次数:
222
Sort a linked list inO(nlogn) time using constant space complexity.归并排序的基本思想是:找到链表的middle节点,然后递归对前半部分和后半部分分别进行归并排序,最后对两个以排好序的链表进行Merge。/** * Definitio...
分类:
其他好文 时间:
2014-09-13 13:15:45
阅读次数:
155
“归并”的含义是将两个或两个以上的有序表组合成一个新的有序表。无论是顺序存储还是链表存储结构,都可在O(m+n)的时间量级上实现。
归并排序又是一类不同的排序方法。假设初始序列含有n个记录,则可看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到n/2个为2或1的有序子序列;再两两归并,....... ,如此重复,直至得到一个长度为n的有序序列为止。
初始关...
分类:
其他好文 时间:
2014-09-13 09:23:54
阅读次数:
185
题目: 给出一列数,a1, a2,....到 an,求它的逆序对数。逆序对就是 下标 i 比 j小,但是值 ai 却比 a j大。n 可以高大 10万。
思路:
(1)穷举,肯定不现实的,因为n 可以高达10万,肯定超时;
(2)考录分治法,受到归并排序的启发,能不能不断划分数组到最小,然后合并时统计 逆序对数。划分和递归都和归并排序没什么区别,问题在合并时如何统计。
合并左右两个数...
分类:
其他好文 时间:
2014-09-11 22:29:12
阅读次数:
220