会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
|旧市拾荒|
三年工作经验,任职于某银行科技部门,从事后端开发与数据开发。
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
14
15
16
17
18
19
20
21
22
···
27
下一页
2019年2月19日
二叉查找树(BST)的实现
摘要: 一、二叉树介绍 二叉查找树(Binary Search Tree,BST),又称二叉排序树,也称二叉搜索树,它或者是一颗空树,或者具有如下性质的树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值;若它的右子树不为空,则右子树上所有节点的值都大于根节点的值。它的左右子树也分别为二叉查找树。
阅读全文
posted @ 2019-02-19 14:23 |旧市拾荒|
阅读(601)
评论(0)
推荐(0)
2019年2月18日
二叉树基本知识
摘要: 一、二叉树介绍 因为任何树都可以转化为二叉树进行处理,并且二叉树适合计算机的存储和处理,因此在数据结构中二叉树是研究的重点。 每个结点的度均不超过 2 的有序树,称为二叉树( binary tree)。 与树的递归定义类似,二叉树的递归定义如下:二叉树或者是一棵空树,或者是一棵由一个根结点和两棵互不
阅读全文
posted @ 2019-02-18 10:17 |旧市拾荒|
阅读(370)
评论(0)
推荐(0)
2019年2月17日
树的简介及Java实现
摘要: 一、树的基本知识 树是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结
阅读全文
posted @ 2019-02-17 15:53 |旧市拾荒|
阅读(1400)
评论(0)
推荐(1)
一致性Hash算法
摘要: 一、分布式算法 在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括: 轮循算法(Round Robin)、哈希算法(HASH)、最少连接算法(Least Connection)、响应速度算法(Response Time)、加权法(Weighted )等。其中哈希算法是最为常用的算法。 典型的
阅读全文
posted @ 2019-02-17 11:44 |旧市拾荒|
阅读(329)
评论(0)
推荐(0)
基于Java实现简化版本的布隆过滤器
摘要: 一、布隆过滤器: 布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。布隆过滤器是与哈希算法是相关的,
阅读全文
posted @ 2019-02-17 00:39 |旧市拾荒|
阅读(626)
评论(0)
推荐(0)
2019年2月16日
基于Java的HashMap和HashSet实现
摘要: 一、Map接口类: 1 import java.util.Iterator; 2 3 public interface IMap<K, V> { 4 /* 清除所有键值对 */ 5 void clear(); 6 7 /* key是否已经存在 */ 8 boolean containsKey(K k
阅读全文
posted @ 2019-02-16 22:43 |旧市拾荒|
阅读(327)
评论(0)
推荐(0)
Hash及HashMap简介
摘要: Hash简介: Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确
阅读全文
posted @ 2019-02-16 17:52 |旧市拾荒|
阅读(377)
评论(0)
推荐(0)
栈和队列基础训练(二)
摘要: 题目一: 请编写一个程序,按升序对栈进行排序(即最大元素位于栈顶),要求最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中。给定一个int[] numbers,其中第一个元素为栈顶,请返回排序后的栈。请注意这是一个栈,意味着排序过程中你只能访问到第一个元素。 测试样例:[1,2,
阅读全文
posted @ 2019-02-16 16:45 |旧市拾荒|
阅读(304)
评论(0)
推荐(0)
栈和队列基础训练(一)
摘要: 题目一: 请设计一个栈,除pop与push方法,还支持min方法,可返回栈元素中的最小值。push、pop和min三个方法的时间复杂度必须为O(1)。 思路:题目要求时间复杂度为O(1),所以肯定不能用循环遍历的方式去解决,于是我们想到用空间换时间的方式去解决,如果我们已经维护好一个已经排好序的栈的
阅读全文
posted @ 2019-02-16 15:45 |旧市拾荒|
阅读(401)
评论(0)
推荐(0)
基于双向链表的栈和队列实现
摘要: 栈的实现: 栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶(top),相对地,把另一端称为栈底(bottom)。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈
阅读全文
posted @ 2019-02-16 10:58 |旧市拾荒|
阅读(918)
评论(0)
推荐(0)
判断回文链表
摘要: 题目: 给定一个链表,检查链表是否回文。 思路:一种是将链表进行翻转(这里可以使用递归来解决,也可以使用非递归)然后翻转后的后半部分与链表的前半部分进行比较来进行判断,第二种是将先找到链表的中间位置,这里可以使用快慢指针来进行,快指针一次走两步,慢指针一次走一步,那么等到快指针走到末尾的时候那么慢指
阅读全文
posted @ 2019-02-16 10:01 |旧市拾荒|
阅读(381)
评论(0)
推荐(0)
链表基础训练(二)
摘要: 题目一: 编写代码,以给定值x为基准将链表分为两部分,所有小于x的结点排在大于或等于x的结点之前。给定一个链表的头结点 ListNode * pHead,请返回重新后的链表的头指针。注意:分割以后原来的数据顺序不变,不要开辟新的空间,即不要新建节点。比如 5 6 3 2 7 以 3 为基准分区后为2
阅读全文
posted @ 2019-02-16 09:35 |旧市拾荒|
阅读(259)
评论(0)
推荐(0)
2019年2月15日
链表基础训练(一)
摘要: 题目一: 删除链表中的重复元素。 思路:一是利用哈希表(HashSet),哈希表特别适合于判断集合中是否有重复的元素。二是直接使用遍历链表,使用两层for循环去遍历再来找出重复的元素。下面给出第一种方法的代码。 1 import java.util.HashSet; 2 3 public class
阅读全文
posted @ 2019-02-15 22:36 |旧市拾荒|
阅读(266)
评论(0)
推荐(0)
2019年2月14日
基于LinkedList实现桶排序
摘要: 需要考虑以下问题: 1、桶的大小,这里我们可以根据输入的元素的个数来确定桶的大小。 2、怎么样确定当前元素进入哪一个桶,这里我们使用到的是通过一个哈希函数来进行计算。 3、因为输入的数据是随机的,所以有可能在一个桶中分布着好几个数据,那么怎么样维持在一个桶中的顺序呢?因为涉及到桶中元素的数量的不确定
阅读全文
posted @ 2019-02-14 11:19 |旧市拾荒|
阅读(485)
评论(0)
推荐(0)
基于Java的ArrayList和LinkedList的实现与总结
摘要: 一、定义MyList接口,包含列表常见方法: 1 import java.util.Iterator; 2 3 /** 4 * 线性表(列表)的接口定义 5 */ 6 public interface MyList<T> extends Iterator<T> { 7 8 /** 新增一个元素 */
阅读全文
posted @ 2019-02-14 10:09 |旧市拾荒|
阅读(549)
评论(0)
推荐(0)
上一页
1
···
14
15
16
17
18
19
20
21
22
···
27
下一页
公告