摘要: 并查集 并查集是一种简单的用途广泛的集合。并查集是若干个不相交集合,能够实现较快的合并和判断元素所在集合的操作。应用很多,如其求无向图的连通分量个数等。最完美的应用当属:实现Kruskar算法求最小生成树。并查集的精髓在于三个操作:初始化,查找,合并。 1.三个操作 (1)初始化Make_Set() 阅读全文
posted @ 2011-07-13 13:43 Matrix海子 阅读(1159) 评论(0) 推荐(1) 编辑
摘要: 图的遍历 图的遍历有两种遍历方式:深度优先遍历(depth-first search)和广度优先遍历(breadth-first search)。 1.深度优先遍历 基本思想:首先从图中某个顶点v0出发,访问此顶点,然后依次从v0相邻的顶点出发深度优先遍历,直至图中所有与v0路径相通的顶点都被访问了 阅读全文
posted @ 2011-07-13 13:38 Matrix海子 阅读(41210) 评论(4) 推荐(3) 编辑
摘要: 二分查找 二分查找(二分搜索)又称折半查找,它要求线性表是有序的,并且需要用一维数组进行存储。二分查找的基本思想如下: 假设L[low......high]为当前要查找的区间(假设是递增有序)。 (1)首先确定该区间的中间位置,mid=(low+high)/2; (2)将待查找的key值与L[mid].key进行比较,如果相等,则查找结束;若不等,则在新的区间进行相同的操作,新的区间确定过程如下: 1)若key>L[mid].key,则key值只可能在mid的右边区间,则新的查找区间为L[mid+1,high]; 2)若key<L[mid].key,则key值只可能在mid的左边区 阅读全文
posted @ 2011-07-13 13:37 Matrix海子 阅读(1655) 评论(0) 推荐(0) 编辑
摘要: 二叉排序树 1.定义 二叉排序树(Binary Search Tree)又称二叉搜索(查找)树,其定义如下: (1)若它的左子树非空,则左子树上所有结点的权值都比根结点的权值小; (2)若它的右子数非空,则右子树上所有结点的权值都比根结点的权值大; (3)左、右子树本身又是一棵二叉排序树。 以上既是 阅读全文
posted @ 2011-07-13 13:36 Matrix海子 阅读(3695) 评论(1) 推荐(2) 编辑