04 2011 档案

摘要:快排是一种不稳定排序, 其最差时间复杂度是 n^2. 但快排是通常排序的最佳实践选择. 因为其平均期望运行时间是 nlog(n). 阅读全文
posted @ 2011-04-27 10:46 walfud 阅读(332) 评论(1) 推荐(0) 编辑
摘要:#include <iostream> #include <iterator> #include <algorithm> using namespace std ; ostream_iterator output(cout, " ") ; // 关联cout,设置分隔符 copy(vec.begin(), vec.end(), output) ; // 元素拷贝到ostream_iterator所指向的对象cout cout <<endl ; // 别忘了加一个换行 阅读全文
posted @ 2011-04-27 09:52 walfud 阅读(777) 评论(0) 推荐(1) 编辑
摘要:此算法优秀在最多比较了 3*n / 2 次就完成了任务. 并且将待分析数组分别以奇数和偶数处理, 从而大大降低了分析的难度. 阅读全文
posted @ 2011-04-17 09:18 walfud 阅读(977) 评论(0) 推荐(0) 编辑
摘要:堆排序为什么美? 记得在 coolshell.cn看到一个文章, 是一个日本人做的排序算法的演示程序, http://coolshell.cn/articles/3933.html, 很是不错, 当你看到堆排序时, 就会被那魔法般的变幻所吸引... 后来仔细思考堆排序, 堆排序为什么美? 堆排序是一个迭代的过程, 每次子排序对于整个带排序的数组是以 2^n 的前进速度进行的, 所以建堆完成后, 排序的时间复杂度是 nlog(n). 面对这个公式我曾经很淡定, 但是当我看到 n > 200 甚至更多的时候, 我变得敏感起来. 什么是优秀, 优秀是在思想上下功夫, 不是用时间来补拙劣. 阅读全文
posted @ 2011-04-15 13:06 walfud 阅读(551) 评论(2) 推荐(0) 编辑