
Java:数据结构
文章平均质量分 62
songzi1228
代码一敲,烦恼全消。
展开
-
数据结构十三:2 - 3树和红黑树
算法导论中对于红黑树的描述:但是一开始就接触这五点,会让人云里雾里,不利于了解这个数据结构。2 - 3树和红黑树具有等价性。先来学习2 - 3树。1、2 - 3树 2节点 3节点具体例子:...原创 2021-05-13 10:03:34 · 212 阅读 · 2 评论 -
数组结构八:堆和优先队列
数组结构八:堆和优先队列原创 2020-04-02 16:23:09 · 156 阅读 · 0 评论 -
数组结构七:集合和映射(Set And Map)
数组结构七:集合和映射(Set And Map)原创 2020-03-25 11:32:20 · 299 阅读 · 0 评论 -
数组结构六:二分搜索树
目录一、为什么要有树结构?二、二分搜索树2.1、二叉树2.2、二分搜索树2.2.1、二分搜索树添加新元素一、为什么要有树结构?将数据使用树结构存储后,出奇地高效二分搜索树(Binary Search Tree)平衡二叉树:AVL;红黑树堆;并查集线段树;Trie(字典树,前缀树)二、二分搜索树2.1、二叉树二叉树具有唯一根节点,在图中,2...原创 2019-09-06 16:43:33 · 208 阅读 · 0 评论 -
数组结构五:链表和递归
目录什么是递归?代码:什么是递归?本质上,将原来的问题,转化为更小的一个问题。代码:public class Sum { public static int sum(int[] arr) { return sum(arr, 0); } //计算arr[l...n]这个区间内所有数字的和 private static i...原创 2019-06-25 11:10:48 · 305 阅读 · 0 评论 -
数组结构四:链表(Linked List)
目录相关文章:什么是链表?怎么创建一个链表?链表的时间复杂度:使用链表实现栈:比较LinkedListStack和ArrayStack的性能:对比结果:用链表实现队列,图示:代码实现:性能对比:ArrayList和LinkedList的区别?相关文章:Java数据结构和算法(七)——链表毕向东视频有关于链表(17集合框架)的内容什么是...原创 2019-03-16 11:45:09 · 345 阅读 · 0 评论 -
数据结构三:队列(Queue)
目录队列的简介:队列的图示:队列的实现:代码实现:数组队列的复杂度分析:循环队列图解:循环队列代码:循环队列复杂度分析:数组队列和循环队列性能比较:对比结果:队列的简介:队列是一种线性结构 相比数组,栈对应的操作是数组的子集 只能从一端添加元素,也只能从一端取出元素队列的图示:队列的实现:代码实现:public cl...原创 2019-06-20 18:28:05 · 291 阅读 · 0 评论 -
数据结构二:栈(Stack)
目录栈的简介:栈的图示:栈的应用一:栈的应用二:栈的实现:代码实现:栈的简介:栈也是一种线性结构 相比数组,栈对应的操作是数组的子集 只能从一端添加元素,也只能从一端取出元素 这一端称为栈顶栈的图示:栈的应用一:栈的应用二:栈的实现:代码实现:public class ArrayStack<E> implem...原创 2019-06-20 16:34:50 · 689 阅读 · 0 评论 -
数据结构一:数组ArrayList
目录相关文章:一、ArrayList:二、LinkedList:三、自己写的ArrayList:四、测试类:相关文章:Java集合源码剖析(系列文章 8篇)一、ArrayList:Access(查询):O(1)Insert:平均O(n) 插入到最后一个,时间复杂度为O(1),插入到第一个位置,时间复杂度为O(n),平均为O(n/2)即O(n)Del...原创 2019-06-13 18:31:21 · 392 阅读 · 0 评论 -
Java面试题十四:HashMap
结合问题:HashMap内部的结构是怎么样的?红黑树有什么特性?红黑树的时间复杂度是多少?理想中的HashMap的时间复杂度是多少?TreeMap有用过吗?原创 2021-05-12 16:02:53 · 217 阅读 · 0 评论 -
HashMap怎样解决散列(hash)冲突?
相关视频:https://www.bilibili.com/video/BV1PQ4y1o7L4常用两种方法:链表法和开放寻址法1、链表法(chaining)在哈希表中,每一个桶(bucket)或者槽(slot)都会对应一条链表,所有哈希值相同的元素放到相同槽位对应的链表中。在插入的时候,我们可以通过散列函数计算出对应的散列槽位,将元素插入到对应的链表即可,时间复杂度为O(1);在查找或删除元素时,我们同样通过散列函数计算出对应的散列槽位,然后再通过遍历链表进行查找或删除,时间复杂.转载 2021-05-14 18:52:03 · 281 阅读 · 0 评论 -
Java面试题一:HashMap 和 HashTable 以及 ConcurrentHashMap的原理和区别
目录相关文章:问题分析:一、HashMap、HashTable、ConcurrentHashMap的原理HashTableHashMapConcurrentHashMap二、HashMap、HashTable和ConcurrentHashMap的区别。更加简略回答:简略回答:较为详细回答:1、继承的父类2、底层实现3、线程安全性不同4、是否提...原创 2019-08-21 16:44:03 · 442 阅读 · 0 评论 -
O(1), O(n), O(logn), O(nlogn) 的区别
在描述算法复杂度时,经常用到O(1), O(n), O(logn), O(nlogn)来表示对应复杂度程度, 不过目前大家默认也通过这几个方式表示空间复杂度 。那么,O(1), O(n), O(logn), O(nlogn)就可以看作既可表示算法复杂度,也可以表示空间复杂度。大O加上()的形式,里面其实包裹的是一个函数f(),O(f()),指明某个算法的耗时/耗空间与数据增长量之间的关系。其中的n代表输入数据的量。如果ax=N(a>0,且a≠1),那么数x叫做以a为底N的对数,记作x转载 2021-05-12 20:31:14 · 212 阅读 · 0 评论 -
数据结构:HashMap
目录相关文章:一、阿里面试题二、源码预热2.1 HashMap的简单使用:2.2实际案例2.3 由浅入深,逐步深入学习2.4ArrayList2.5 LinkedList三、源码分析3.1 体现了链表的结构特点:3.2 体现了数组的结构特点:3.3 初始容量和最大容量:3.4 扩容:3.5 每个链表的默认阈值3.6 put方法...原创 2019-04-22 12:47:38 · 263 阅读 · 0 评论 -
关于算法练习的一些说明
涉及到关于数据结构的一些学习方法。1、关于leetcode练习题的难度说明每个题目后面都有关于难度的备注:简单、中等、困难。其实并不完全准确,有些一时搞不懂就跳过即可。2、学习方法从其他地方转载而来。(慕课网liubobo老师)内容:大多数同学犯的最大的错误,就是在学习上犯完美主义的毛病。乃至后续很多其他的问题,在我看来都是和这个问题直接相关的。举个经典的例子:背英语...原创 2020-04-01 10:25:27 · 222 阅读 · 0 评论 -
为什么要学习数据结构?
目录一、为什么要学习数据结构?二、有哪些数据结构?举例:例子一:数据库例子二:操作系统例子三:文件压缩例子四:通讯录例子五:游戏之寻找最佳路径一、为什么要学习数据结构?数据结构是所有计算机专业的同学必学的课程。数据结构研究的是数据如何在计算机中进行组织和存储,使得我们可以高效的获取数据或者修改数据。二、有哪些数据结构?集合、线性结构、树形结构、图形...原创 2019-06-17 12:11:53 · 1237 阅读 · 0 评论 -
数据结构和算法学习指南
这篇文章会涵盖之前的所有内容,并且会举很多代码的实例,谈谈如何使用框架思维,并且给对于算法无从下手的朋友给一点具体可执行的刷题建议。首先,这里讲的都是普通的数据结构和算法,咱不是搞竞赛的,野路子出生,只解决常规的问题,以面试为最终目标。另外,以下是我个人的经验的总结,没有哪本算法书会写这些东西,所以请读者试着理解我的角度,别纠结于细节问题,因为这篇文章就是对数据结构和算法建立一个框架性的认...转载 2020-02-19 11:20:56 · 308 阅读 · 0 评论 -
jdk8-HashMap源码注释中文翻译
/* * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package java.util; import sun.misc.Shar...转载 2019-08-21 11:18:22 · 298 阅读 · 0 评论