摘要:
归并排序最差运行时间是O(nlogn),它是利用递归设计程序的典型例子。采用分治的思想。归并排序的最基础的操作就是合并两个已经排好序的序列。假设我们有一个没有排好序的序列,那么首先我们使用分割的办法将这个序列分割成一个一个已经排好序的子序列。然后再利用归并的方法将一个个的子序列合并成排序好的序列。分割和归并的过程如下: 1 4 3 5 2 6 / \ 1,4,3 5,2,6 / \ / \ 1,4 3 5,2 6 / / \ / / \... 阅读全文
摘要:
二叉树的中序遍历->递归算法:typedef struct node_t{ char *value; node_t *left; node_t *right;}*tree, node;void traverse(tree root, void (*visit)(node)) { if(root != NULL) { traverse(root->left, visit); visit(root); traverse(root->right, visit); }}二叉树中序遍历->非递归算法:typedef struct n... 阅读全文