摘要: 快速排序是排序算法中比较经典的一种排序算法。这里给一个 c++ 的简单实现。这里的模板用的并不好,需要改进。 quicksort 调用过程比较简单,就只是一个递归。每次调用 partation 都会将一个数字放到最终合适的位置上。这里选的是子序列末尾的数。当然可以先随机选一个数然后和最后一个数进行交换以达到随机化的目的。quicksort 整个算法的平均时间复杂度为 O(n*logn),详细分析请看 算法导论 第七章内容。template <typename T>int quicksort(T *arr, int from, int to, int (*cmp)(T,T)){ if 阅读全文
posted @ 2012-10-07 16:15 rereadyou 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 这里会记录一些c\c++的一些知识点,常看常新。 (1)printf 函数与自增的结合使用 int i = 0; printf("%d, %d", ++i, i++); 这个printf输出会是什么? g++ 编译后运行结果是"2, 0",而不是"1, 1"。c\c++ 函数参数压栈的顺序是从右至左,体现在上面就是先压入"i++",再压入"++i",这样由于栈是后进先出的,所以第一个参数"++i"结果会被放在栈顶位置。c\c++的函数实参可以是任何表达式,只是实际运行时会被先 阅读全文
posted @ 2012-10-07 15:16 rereadyou 阅读(189) 评论(0) 推荐(0) 编辑