![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 79
Tian_Ex
这个作者很懒,什么都没留下…
展开
-
红黑树
二叉查找树(Binary Search Tree)是指一棵空树或者是具有下列性质的二叉树: 若节点的左子树不为空,则左子树上所有节点的值均小于它的根结点的值;若节点的右子树不为空,则右子树上所有节点的值均大于它的根结点的值;节点的左、右子树也分别为二叉查找树;没有键值相等的节点(no duplicate nodes)。 一棵由n个节点随机构造的二叉查找树的高度为logn,所以一般操作的原创 2016-01-10 15:59:38 · 325 阅读 · 0 评论 -
布隆过滤器
哈希函数 哈希函数(Hash)是将一个大的数据集映射到一个小的数据集上,这些小的数据集叫做哈希值或散列值。 一个应用是Hash table(散列表,也叫哈希表),是根据哈希值 (Key value) 而直接进行访问的数据结构。也就是说,它通过把哈希值映射到表中一个位置来访问记录,以加快查找的速度。下面是一个典型的 hash 函数 / 表示意图: 哈希函数有两个特点: 如果根据同原创 2016-02-23 11:02:22 · 741 阅读 · 0 评论 -
几种排序算法总结
归并排序 归并排序是将一个待排序记录构成的文件看做是由多个有序子文件构成,通过对有序子文件使用若干次归并的方法得到一个有序文件。该算法是采用分治法的一个非常典型的应用。 归并排序的基本思路是,首先将待排序文件分为一个个的有序子文件(具体做法是将文件分成两部分,接下来对分出来的两部分各自分成两部分,以此类推,当分出来的部分中只有一个元素时,就可以认为该部分已经有序了),然后依次合并相邻的两个子文原创 2016-04-03 13:40:14 · 471 阅读 · 0 评论 -
判断一个字符串是否回文
问题描述:编写一个函数,参数为一个字符串,其返回值是这个字符串是否回文(即正读和反读都一样)。 解决方法: 方法一:同时从字符串头尾开始向中间扫描,如果所有字符都一样,那么这个字符串就是回文的。 实现代码如下: public static boolean isPalindrome(String str) { if (str == null || str.原创 2016-01-10 16:14:38 · 1907 阅读 · 0 评论 -
在一个字符串中查找第一个非重复的字符
问题描述:编写一个函数,这个函数接受一个字符串作为参数,并返回第一个不重复的字符。例如,字符串"abbcda",c是第一个不重复的字符。 解决方法: 方法一:使用linkedHashMap来记录字符的个数,因为LinkedHashMap维持了插入元素的顺序,所以当我们扫描字符串时,只需要迭代LinkedHashMap并返回值为1的元素。 实现代码如下: public s转载 2016-01-10 16:08:02 · 1396 阅读 · 0 评论 -
最长回文子串
问题描述:编写一个函数,参数为一个字符串,返回这个字符串的最长回文子串长度。 解决方法: 方法一:因为如果一个字符串是回文的,那么以某个字符为基点的前缀和后缀都是相同的。所以可通过遍历某个字符作为基点,然后再基点处前后进行扫描,记录并更新得到最长的回文子串。 实现代码如下: public static int getLongestPalindrome(Strin转载 2016-01-10 16:03:48 · 415 阅读 · 0 评论 -
缓存算法
缓存就是临时存储数据(通常是使用频繁的数据)的地方,以避免额外的开销较大的计算,并且使得获取结果的速度更快。 缓存相关的术语: 命中(如果在缓存中,一个条目通过get被找到了,我们就称之为缓存命中)缓存Miss存储成本(数据放入缓存所需要的时间和空间)索引成本失效(当存在缓存中的数据需要更新时,就意味着该数据失效了)缓存算法(当缓存未命中时,且缓存容量已满,就需要从缓存中置换出原创 2016-01-12 15:26:28 · 1142 阅读 · 0 评论