算法
文章平均质量分 79
iteye_19269
这个作者很懒,什么都没留下…
展开
-
一个图是否存在环
问题描述:给一个图G=<V,E>,问如何判断这个图中是否存在回路?请给出至少3种方法 分析: 方法1:利用减枝的方法, 如果G为有向图: 1)首先删除入读为0的点,并且将对应的和该点相连的点的入读-1。(可以用一个数组表示节点被删除的状态) 2)重复过程1),直到没有入读为0的点,如果还有没被删除的节点,则该有向图一定存在回路 ...原创 2017-02-16 11:01:25 · 158 阅读 · 0 评论 -
从n个对象中随机取出m个
很多类似的这种问题,都有两种方案,一种以时间换空间,一种以空间换时间。 对于方法一:这里可以计算一下其每次循环的概率是否都相同, 假设i=0,随机到元素的概率为m/n; 假设i=1,随机到元素的概率为m/n*((m-1)/(n-1))+(1-m/n)*(m/(n-1))=m/n(分别假设i=0时没有随机到和有随机到) ... 所以每次循环所随机到元素的概率都相同。 //此方法摘录...原创 2017-04-02 20:18:20 · 383 阅读 · 0 评论 -
几种排序算法
(1)冒泡排序 相邻的两个元素比较,后者大则交换位置。共循环n次,第i次需要比较n-i个元素。稳定排序。 所以比较的时间复杂度为(n-1)+...+1=(n-1)*n/2=n*n (2)选择排序 给每个位置选择当前元素最小的,比如给第一个位置选择最小的(将最小的值和第一个位置的值互换位置),在剩余元素里面给第二个元素选择第二小的,依次类推,直到第n - 1个元素,第n个元素不用选...原创 2017-04-02 23:22:58 · 98 阅读 · 0 评论 -
二叉树等其他数据结构整理
深度优先周游:先根次序、后根次序、中根次序。 广度优先周游:逐层访问。 哈夫曼树(最优二叉树):叶节点权值之和最小。算法题目常常给若干叶节点,让你构造最优二叉树。只需要从最小的两个叶节点值开始,其父节点为两者之和,并与第三个最小叶节点成为兄弟节点,依次类推,形成最优二叉树。 三种经典的数据类型来实现高效的符号表:二叉查找树(B树)、红黑树、散列表。可以看看MYSQL索引的实现...2017-04-03 00:16:42 · 128 阅读 · 0 评论