数据结构与算法
文章平均质量分 71
245123774
这个作者很懒,什么都没留下…
展开
-
HashMap源码学习
文章目录前言一、HashMap初始化1.1 tableSizeFor二、HashMap.put2.1 哈希函数2.2 putVal计算索引值2.3 总结三、数组扩容3.1 putVal数组扩容3.2 resize数组扩容3.3 loadFactor装载因子3.1 装载因子的作用3.2 为什么是0.753.3 resize扩容时数组拷贝前言HashMap看过几次源码, 大致流程清楚, 但是有几个比较关键的点还是不太明白, 这次尝试比较彻底的搞明白这几个关键点:1、散列函数2、哈希冲突3、扩容方原创 2021-01-31 16:43:15 · 109 阅读 · 0 评论 -
第三章 表,栈,队列
在实践中如果知道变动将要发生的地方, 那么向链表插入或从链表中删除一项的操作不需要移动很多的项, 而只涉及常熟个节点链的改变;双链表:原创 2017-02-25 12:51:14 · 287 阅读 · 0 评论 -
第二章算法分析
1.本章重点:如何估计一个程序所需要的时间;如何将一个程序的运行时间从天或年降低到秒甚至更少;粗心使用递归的后果;将一个数自乘得到其幂, 以及计算两个数的最大公因数的非常有效的算法;2.基本概念:如果存在正常数c和n0使得当N≥n0时T(N)≤cf(N),则记为T(N)=O(f(N)).如果存在正常数c和n0使得当N≤n0时T(N)≥cg(N),则记为T(N)=Ω(g(N)).T(N原创 2017-02-21 08:39:55 · 359 阅读 · 0 评论 -
数据结构与算法_基础概念
算法:一定要保证有穷性 程序不一定是算法, 不一定能保证程序有穷性1.公式:1、调和级数: h(n) = 1+1/2+1/3+1/4+…+1/n = O(logn)2、对数级数: log1+log2+log3+…+logn = log(n!) = O(nlogn)2.策略: 1、减而治之: 2、分而治之:3.排序: 1、冒泡排序: 2、并归排序:原创 2017-03-24 08:41:17 · 918 阅读 · 0 评论 -
树知识累计
路径: 根节点到某节点的一条路线; 深度: 根节点到某节点的长度; 内部路径长: 所有节点深度总和; 高: 节点到树叶的长度; http://blog.csdn.net/pililipalalar/article/details/51980989 二叉查找树: 任一节点均不小于/不大于其左/右后代. 节点16左子树所有节点都不大于16, 右子树所有节点都不小于16, 这个就原创 2017-03-08 08:40:07 · 310 阅读 · 0 评论 -
HashMap与LinkedHashMap
http://www.admin10000.com/document/3322.html 刚看完,赶紧记录一下, 看看是否能把知识梳理一哈; 关于装填因子的取值以及扩容的问题, 我打算放在最后面讲;1.HashMap():1. 构造函数2. put(K key,V value);3. get(K key);1、构造函数:1. HashMap();2. HashMap(int capacit原创 2017-03-30 12:48:42 · 814 阅读 · 0 评论 -
Java数据结构_散列
1、什么样的散列函数hash()更好: 1、确定: 同一关键码总是被映射至同一地址; 2、快速: expected-O(1); 3、满射: 尽可能充分地覆盖整个散列空间; 4、均匀: 关键码映射到散列表各位置的概率尽量,可有效避免聚集现象;原创 2017-03-20 08:33:42 · 280 阅读 · 0 评论