数学.算法
齐格Insight
产品思维,工程能力,技术影响!
展开
-
快速排序(快排)算法的C++两种实现
快排算法在分治的时候有两种实现,一种实现是从两边到中间(partition),另一种实现是从一边到另一边(partition2)。我用一个100000数组测试发现前一种实现运行速度快一些。 这两种的C++实现如下: (注:我用的代码风格是gnu的代码风格) bool sort::qsort(int *ini, int start, int end) { // sort the array原创 2013-03-30 19:29:54 · 6441 阅读 · 0 评论 -
用Lisp语言实现Fibonacci数列
我们知道Fibonacci数列的第n个数为F(n) = F(n-1) + F(n-2), F(0) = 0, F(1) = 1。这里,我们数组的下标从0开始。 用Lisp实现求F(n),它有两种求法:递归和非递归。如果是递归的话,当n=50以上就非常慢了。 (defun fib (n) ;calculate the Fibonacci list at pos n (do原创 2013-03-31 18:31:29 · 2105 阅读 · 0 评论 -
用Lisp语言实现快速排序(快排)算法
实现代码如下: (defun main-qsort (arr) (let ((start 0) (end (- (length arr) 1))) (qsort start end arr)) (print arr) ) (defun qsort (start end arr) ;note the variable arr is a list (when (< end s原创 2013-04-01 08:58:15 · 3163 阅读 · 0 评论 -
C++实现:单链表的反转(序)操作
//main.cpp #include #include #include #include #include #include "linklist.cpp" #define MAXINTLEN 10 using namespace std; int main(int argc, char *argv[]) { int tmp[MAXINTLEN]; doubl原创 2013-04-24 09:40:09 · 1365 阅读 · 0 评论