
数据结构
Anguser
屌丝架构师的程序猿之路!
展开
-
算法刻意练习第三天--两数相加解题思路
题目描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 ->...原创 2020-04-01 00:17:11 · 261 阅读 · 0 评论 -
算法刻意练习第二天--数组与链表
数组查找内存连续的存储空间,内存管理器可以实现访问任何一个位置的元素,O(1)的查找。插入[1,2,3,4,5] 在3和4之间插入一个值,6,需要把4,5 往后挪动。平均时间复杂度是O(N),删除也是O(n) 的平均时间复杂度。链表我想改变他的插入和更新的时间复杂度,有没有好的数据结构呢?链表 – linked List本质上,有一个指针,链向下一个节点,整个连成一个表链表的常用...原创 2020-03-31 02:48:43 · 247 阅读 · 0 评论 -
算法刻意练习第一天--复杂度分析以及学习方法
时间复杂度算法时间复杂度分析,复杂度越低,大数据量,高并发环境下,收益很高1 + 2 + 3+ … + n求和公式: y = n*(n+1)/2Fibonacci 时间复杂度计算F(n) = F(n-1) + F(n-2)时间复杂度:O(2^n) 并不是特别有效的算法查用查找算法的时间复杂度是多少:二分查找 – Log(n)二叉树遍历 O(n)二维度矩阵 O(n)快排 --n...原创 2020-03-31 00:00:30 · 234 阅读 · 0 评论 -
算法复杂度分析,如何分析,统计算法的执行效率和资源消耗
复杂度分析是整个算法学习的精髓只要掌握了他,数据结构和算法的内容基本上就掌握了一半为什么需要复杂度分析?其实我可以把代码跑一遍,通过统计,监控就能得到算法执行的时间和占用内存大小。其实这是一种事后统计法,这种统计方法局限很大。1、测试结果依赖测试环境和测试机器的配置有关,机器越好,性能越好。2、测试数据受数据规模影响然而,我们需要一个不用具体的测试数据来测试,就可以粗略估算算法的执行...原创 2019-11-30 13:42:18 · 480 阅读 · 0 评论 -
java模拟LinkedList实现双链表,完成基本操作
自定义的双向链表,完成基本CURD操作原创 2017-08-12 15:01:38 · 592 阅读 · 0 评论 -
使用java来实现阻塞队列
* BlockingQueue: 顾名思义,首先它是一个队列,并且支持阻塞机制,阻塞的放入和阻塞的得到数据原创 2017-08-27 21:02:58 · 4428 阅读 · 6 评论