Java数据结构
文章平均质量分 79
Java数据结构
CSNZのBlog
一个人的能力永远都体现在思考能力和发现并解决问题的能力,而不是懂多少技术。
展开
-
数据结构 之 HashMap
HashMap数据结构JDK1.8版本的,内部使用数组 + 链表 或 红黑树HashMap的数据插入原理1. 判断数组是否为空,为空进行初始化;2. 不为空 ,计算 key 的 hash 值 , 通过 (n - 1) & hash 计算应当存放在数组中的下标 index;3. 查看 table[index]是否存在数据,没有数据就构造一个Node节点存放在 table[index] 中;4. 存在数据,说明发生了hash冲突 ( 存在俩个节点key 的 hash值一样 )继续判原创 2021-10-26 09:00:42 · 616 阅读 · 0 评论 -
数据结构 之 链表 高频面试题
一:面试时链表解题的方法论1、对于笔试,不用太在乎空间复杂度,一切为了时间复杂度2、对于面试,时间复杂度依然放在第一位,但是一定要找到空间最省的方法二:链表面试题常用数据结构和技巧1、使用容器(哈希表、数组等)2、快慢指针使用快慢指针的面试题:1、输入链表头结点,奇数长度返回中点,偶数长度返回上中点*//输入链表头结点,奇数长度返回中点,偶数长度返回上中点 public static <T> Node<T> midOrUpMidNode(Node<T&g原创 2021-10-11 22:30:11 · 3316 阅读 · 0 评论 -
数据结构 之 异或运算
异或运算:相同为0,不同为1(无进位相加)例子:6 ^ 7 = 110 ^ 111 = 001 = 1(十进制)同或运算:相同为1,不同为0????题目一:如何不用额外变量交换两个数a = 666;b = 888;a = a^b b = a^b ⇒ ( a^b )^b ⇒ aa = a^b ⇒ ( a^b )^ a ⇒ b此时 a、b 两个变量就交换了!注意:使用位运算的前提是 俩变量不是同一块内原创 2021-10-07 21:42:15 · 1064 阅读 · 0 评论 -
数据结构 之 链表基础知识点 及配套面试题
一:单链表单链表的结点结构 数据域+指针域结点对每个数据元素 Ai,除了存储其本身的信息之外还需存储一个指示其直接后继存放位置的指针。public class Node<T> { public T data; // 数据域 public Node<T> next; // 指针域 // 一个参数的构造方法 public Node(Node<T> next) { super(); this.next = next; } // 两个参数原创 2021-07-20 17:36:31 · 523 阅读 · 1 评论 -
数据结构 之 哈希表
哈希表在使用层面上可以理解为一种集合结构如果只有key ,没有伴随数据value,可以使用 HashSet 结构如果既有 key, 又有伴随数据value,可以使用HashMap结构有无伴随数据,是HashMap 和 HashSet 唯一的区别,底层的实际结构是一回事使用哈希表 增 ( put ) 、删 ( remove )、改 ( put )、查 ( get ) 的操作,可以认为时间复杂度为 O(1),但是常数时间比较大。放入哈希表的东西,如果是基础类型,内部按 值传递,内存占用就是这个东西的.原创 2021-07-19 12:45:32 · 309 阅读 · 0 评论 -
数据结构 之 十大排序算法
何为排序:将一系列数据 从小到大 或 从大到小 这样有规律的排序常见排序算法如下简单排序一:选择排序最简单 且 最没用的排序算法( 时间复杂度为 O(N²) 额外空间复杂度为O(1) 不稳定)public class SelectionSort { public static void selectSort(int[] arrs) { long startTime = System.nanoTime();//获取开始时间 //判断数组是否为空 或者只有一个元素 if(ar原创 2021-07-18 11:02:28 · 1076 阅读 · 0 评论 -
数据结构 之 二分法的详解及扩展
ddd原创 2021-07-09 17:26:30 · 1308 阅读 · 0 评论