
算法
文章平均质量分 81
PEACEFIRE
展翅高飞
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
如何理解O(n)中的O和n
理解先看两个数学公式f(n) = 4n + 1000g(n) = 2n^2 + 5如果使用大O来表示f函数,则为O(n);如果使用大O来表示g函数,则为O(n^2);所以大O是一个线性函数。小n是样本的个数。我们在比较算法的时间复杂度的时候实际上比较的是括号内的内容是n,logn还是n^2等。到这里有人可能会想那为什么不能直接用n,logn,n^2来表示时间复杂度呢?n,logn,n^2只能算作一种趋势,实际上是在大多数时候我们关心的就是趋势而已,我们并不关心具体的公式是什么,所以我们把原创 2020-10-09 14:58:36 · 3617 阅读 · 0 评论 -
算法-排序
时间复杂度解决问题的通常步骤完整而详细地定义问题,找出解决问题所必需的基本抽象操作并定义一份API简洁地实现一种初级算法,给出一个精心组织的开发用例并使用时机数作为输入当前算法所能解决问题的最大规模达不到期望时决定改进还是放弃逐步改进实现,通过经验性分析或数学分析验证改进后的效果用更高层次的抽象表示数据结构或算法来设计更高级的改进版本如果可能尽量为最坏情况下的性能提供保...原创 2018-04-28 18:25:33 · 244 阅读 · 0 评论 -
算法-优先队列与堆排序
1原创 2018-05-24 09:57:41 · 264 阅读 · 0 评论 -
算法-查找(红黑树)
查找符号表最主要的目的是将一个键合一个值联系起来。用例能够将一个键值对插入符号表并希望在之后能够从符号表的所有键值对中按照键直接找到对应的值,即以键值对为单元的数据结构。无序链表顺序查找性能:N方有序数组二分查找代码public int rank(Key key){ int lo = 0,hi = N-1; while(lo <= hi){...原创 2018-06-16 11:37:56 · 7520 阅读 · 0 评论 -
其他符号表
散列表如果键都是小整数,用一个数组实现无序的符号表,将键直接作为数组索引。这样我们就可以快速访问任意键的值。基于这种思想设计的数据结构就是散列表。查找算法1.使用散列函数将键转化为索引优秀的散列函数满足:一致性:等价的键必然产生相等的散列值高效性:计算简便均匀性:均匀地散列所有的键2.处理碰撞冲突处理碰撞冲突的两种方法:拉链法和线性探测法。 散列表是算...原创 2018-07-06 11:42:58 · 275 阅读 · 0 评论 -
字符串算法(待修订)
字符串草稿字母表1索引计数法低位优先2索引计数法高位优先public static class MSD{ private static int R = 256;//基数 private static final int M = 15;//小树组的切换阈值 private static String[] aux;//数据分类的辅助数组 private stat...原创 2019-02-21 15:38:29 · 224 阅读 · 0 评论