![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
刷题学习
文章平均质量分 52
Stu_art
这个作者很懒,什么都没留下…
展开
-
graph 图数据结构
树 和 图 辨析1 树的父节点和子节点之间是一条路单向可达2 图的的节点之间存在多条路可达基本概念1 顶点2 边3 邻居节点:只有一条边连接的顶点4 度(degree):一个顶点有几条边,就有几度图的区分1 无向图:边没有方向2 有向图3 权重图有向图的基本概念1 入度:多少条边指向该顶点2 出度:多少条边从这个顶点出发指向其他顶点EG:韩:入度为0;出度为2李:入度为1;出度为1bishi:入度为2;出度为0饲:入度为1;出度为1权重图的基本概念边上有权重原创 2021-11-24 13:56:23 · 437 阅读 · 0 评论 -
堆 Heap Java 知识点
基本定义堆就是一种二叉树结构—完全二叉树完全二叉树:1 每个父节点,最多只有两个孩子2 从上到下,从左到右依次填满堆需要满足的条件:1 是一个完全二叉树2 每个节点都大于等于孩子节点(最大堆)或者每个每个节点都小于等于孩子节点(最小堆)最大堆和最小堆的辨析[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YGWFpyA2-1634545889516)(pic22.png)]根节点:堆顶元素堆常见操作的时间复杂度访问 Access X搜索 Search O原创 2021-10-18 16:48:07 · 315 阅读 · 0 评论 -
树Tree知识点
树的基本概念描述的是节点之间的父子关系tips: 成环的结构不可能成为树, 因为无法确定父子关系重要的名词1 节点2 根节点(开始的节点,没有父节点,具有唯一性)3 叶子节点(没有孩子的节点)高度、深度、层 概念辨析1 高度:从叶子向根看,从0开始计数2 深度:从根向叶子看,从0开始计数3 层: 从根向叶子看,从1开始计数二叉树1 普通二叉树:每个节点最多两个孩子2 满二叉树:除了叶子节点,每个节点都有左右两个孩子,且所有的叶子节点都在同一层3 完全二叉树:从树的根节点,从上原创 2021-10-16 16:10:01 · 260 阅读 · 0 评论 -
Java集合 Set学习
特点1 无序2 不重复注重自己独一无二的特性主要作用1 检查某一个元素是否存在2 有无重复元素Set的种类1 HashSet 主要使用2 LinkListSet3 TreeSet讲一个元素加入到HashSet过程原理1 取得元素2 通过哈希函数得到哈希值3 通过哈希值在哈希表中寻找,如果表中没有此元素,就直接存入到哈希表中4 如果有元素,然后进行对比5 如果已有元素和当前元素相等,则不做操作6 如果不想等,则发生哈希冲突(使用链表方法解决)哈希集合的操作的时间复杂度1原创 2021-10-13 18:53:10 · 76 阅读 · 0 评论 -
Java 哈希表学习-散列表
基础定义键值对:key:value例如学号姓名:1:张三2:李四3:王五查找元素的方式不需要从头遍历到尾,直接通过键(key)来进行查找,时间复杂度低语言的使用Java—HashMappython----字典哈希查找对应元素的机制哈希碰撞两个不同的key通过同一个哈希函数,得到相同的内存地址解决方式:将两个键值对使用链表串起来各种操作的时间复杂度1 访问 X2 搜索(无哈希碰撞) O(1)3 搜索(有哈希碰撞) O(K) 链表遍历时经过了k个元素4 插入 O(1)5原创 2021-10-08 15:27:56 · 136 阅读 · 0 评论 -
Java 零碎基础知识
问号 ?冒号 :条件语句int i = 0;int x = i>1 ? 0:1;问号冒号将其分为代码分为三个部分A、B、CA?B:C如果A为真则执行B,如果为假则执行C字符串charAt 函数String 类型的变量使用指定index,返回该位置上的字符,返回类型为char类型String 和 StringBuilder 的使用初始化StringBuilder str = new StringBuilder();增加元素str.append(1);str.append(原创 2021-09-23 15:36:22 · 120 阅读 · 0 评论 -
Java栈的学习
特点先进后出,与队列这种数据结构相反,队列是先进先出。实用例子: 浏览器后退功能操作的时间复杂度1 访问栈顶元素 O(1)2 搜索 O(N)3 插入 O(1) 入栈4 删除 O(1) 出栈Java栈的常用操作创建栈Stack<Integer> stack = new Stack<>();添加元素stack.push(1);stack.push(2);stack.push(3);System.out.println(stack.toString());原创 2021-09-20 19:58:00 · 116 阅读 · 0 评论 -
Java 队列学习
队列的特点先进先出队列的分类1 单端队列只有一个口可以进,一个口可以出2 双端队列两个口都可以进, 两个口都可以出队列数据结构的特点1 访问O(N)需要从头到尾遍历一遍2 搜索O(N)需要从头到尾遍历一遍3 插入O(1)插入只能在队尾插入,不需要遍历,所以时间复杂度为O(1)4 删除O(1)删除只能在队头删除,不需要遍历,所以时间复杂度为O(1)tips队列的底层实现是链表队列的常见操作1 创建队列Queue<Integer> queue = new Li原创 2021-09-17 00:04:42 · 113 阅读 · 0 评论 -
时间复杂度和空间复杂度
时间复杂度即为代码的执行次数量级O(1)常量数量级的时间复杂度, 没有for循环和while循环O(N)常量不看,其中total=0,return total为常量执行次数只有一层循环,循环的执行次数为NO(logN)常量不看,其中i=1,return i 为常量执行次数i=i*2的执行次数为log2(N),舍去2,则最后结果为O(logN)O(M+N)同理常量次数不看两个O(N),一个执行M次,一个执行N次组合之后变成O(M+N), 实际上等同于O(N)O(NlogN)原创 2021-09-08 22:20:39 · 104 阅读 · 0 评论