
基础算法温习
文章平均质量分 79
jeiwt
这个作者很懒,什么都没留下…
展开
-
快速排序
单向扫描//单向的void qsort1(int *arr, int begin, int end){ if(begin >= end) return ; int m = begin; //Assert arr[begin+1....m] =arr[begin] ) for(int i=begin+1; i<=end; i++) { if(arr[i]原创 2010-04-13 16:36:00 · 887 阅读 · 0 评论 -
求二叉树中2个节点的最近祖先
思路:分别记录root到两个节点的路径。路径知道了,从root开始,不一样的分支点上级就是最近祖先。 路径的查找方法有二:深度优先遍历并查集(不懂) 介绍DFS先,关注传入的参数path为root到节点的路径。DFS方法如果查找成功返回查找的长度;否则返回-1。#include using namespace std;typedef stru原创 2010-04-23 16:37:00 · 1048 阅读 · 3 评论 -
二叉树的非递归前序/中序/后序算法
<br />void PreOrder(Node *root){ if(root == NULL) return ; Node *p = root; stack<Node *> s; s.push(p); while(!s.empty()) { Node *node = s.pop(); visit(node); if(n原创 2010-11-14 10:50:00 · 717 阅读 · 0 评论 -
链表的插入操作及链表的倒置
//recursion链表倒置法1Node * reverse(Node * head){ if(head == NULL || head->next == NULL) return head; Node * q = head->next; //先翻转head->next Node * newHead = reverse原创 2010-05-18 09:53:00 · 819 阅读 · 0 评论 -
KMP算法
原帖http://blog.youkuaiyun.com/v_july_v/article/details/7041827#comments转载 2014-08-11 00:00:07 · 977 阅读 · 0 评论