图的存储方法有邻接表、邻近矩阵、邻接多重表、十字链表等。本篇文章介绍两种简单且比较常用的两种方法:邻接表与邻接矩阵方法。
以下面的无向图为例,介绍两种存储方法。有向图的存储方法类似,只是边是单方向,无向图的边可以看做双向。
1.邻接链表法邻接链表表示法对图中的每个顶点建立一个带头的边链表;第i条链表代表依附于顶点viv_i所有边信息,若为有向图,则表示以顶点viv_i为弧尾的边信息。邻接链接可以...
分类:
编程语言 时间:
2016-07-13 16:42:18
阅读次数:
291
承网上的前辈所言:机器学习不是一个一个孤立的算法堆砌起来的,想要像看《算法导论》这样看机器学习是个不可取的方法.机器学习里面有几个东西一直贯穿全书,比如说数据的分布、最大似然(以及求极值的几个方法,不过这个比较数学了),偏差、方差的权衡,还有特征选择,模型选择,混合模型等等知识,这些知识像砖头、水泥 ...
分类:
其他好文 时间:
2016-07-13 11:43:42
阅读次数:
164
前言:动态规划的概念 动态规划(dynamic programming)是通过组合子问题的解而解决整个问题的。分治算法是指将问题划分为一些独立的子问题,递归的求解各个问题,然后合并子问题的解而得到原问题的解。例如归并排序,快速排序都是采用分治算法思想。本书在第二章介绍归并排序时,详细介绍了分治算法的 ...
分类:
编程语言 时间:
2016-07-12 22:52:24
阅读次数:
193
概述:R-BTree,又称为“红黑树”。本文参考了《算法导论》中红黑树相关知识,加之自己的解,然后以图文的形式对红黑树进行说明。本文的主要内容包括:红黑树的特性,红黑树的时间复杂度和它的证明,红黑树的左旋、右旋、插入等操作。1R-BTree简介R-BTree,全称是Red-BlackTree..
分类:
其他好文 时间:
2016-07-11 01:19:03
阅读次数:
186
看完《算法导论》肯定会写单纯形 因为单纯形不仅好写而且《算法导论》里讲的很清楚 附赠uoj179的模板一个 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<cmath> 5 #include<cstri ...
分类:
其他好文 时间:
2016-07-10 23:17:36
阅读次数:
198
题目描述 Description 摘自算法导论。。。。。。 找出第k个被3,5,7除的时候,余数为2,3,2的数; 题目描述 Description 摘自算法导论。。。。。。 找出第k个被3,5,7除的时候,余数为2,3,2的数; 摘自算法导论。。。。。。 找出第k个被3,5,7除的时候,余数为2, ...
分类:
其他好文 时间:
2016-07-10 21:37:20
阅读次数:
150
2.1插入排序 扑克牌这个栗子不错。以后得多用扑克牌来形象化思考排序问题。 根据伪代码用java实现插入排序 循环不变式。。。。。。。 2.2分析算法 RAM模型,输入规模,运行时间(假定第i行的每次执行需要时间Ci), 最坏情况与平均情况分析,增长量级 2.3设计算法 分治法 归并排序 Merge ...
分类:
编程语言 时间:
2016-07-10 13:59:18
阅读次数:
192
红黑树 红黑树是一种二叉查找树,但在每个结点上增加了一个存储位表示结点的颜色,可以是RED或者BLACK。通过对任何一条从根到叶子的路径上各个着色方式的限制, 红黑树确保没有一条路径会比其他路径长出两倍,因而是接近平衡的。当二叉查找树的高度较低时,这些操作执行的比较快,但是当树的高度较高时,这些操作 ...
分类:
编程语言 时间:
2016-07-10 11:03:10
阅读次数:
244
一、什么是二叉搜索树 二叉查找树是按照二叉树结构来组织的,因此可以用二叉链表结构表示。二叉查找树中的关键字的存储方式满足的特征是:设x为二叉查找树中的一个结点。如果y是x的左子树中的一个结点,则key[y]≤key[x]。如果y是x的右子树中的一个结点,则key[x]≤key[y]。根据二叉查找树的 ...
分类:
编程语言 时间:
2016-07-08 19:56:20
阅读次数:
186
&1 思想和时间复杂度 分治法思想(Divide and Conquer),这是算法导论里面讲的第一个算法思想,很经典也很实用。 时间复杂度分析,最好是O(n),最差是O(n2),平均性能是O(nlog(n))。 &2 算法 #1. 在待排数列中(n个数)选择一个基准数(理论上可以任意); #2. ...
分类:
编程语言 时间:
2016-07-07 09:46:38
阅读次数:
147