数据结构与算法
文章平均质量分 64
海中大咸鱼
这个作者很懒,什么都没留下…
展开
-
数据结构之数组(Java)
自身的特点 内存数据的连续性,申请的内存空间也是连续性的 数组内都是相同的数据类型 适合解决的问题 随机访问 (根据下标) 时间复杂度 根据下标随机访问,时间复杂度为 O(1) 不根据下标访问,时间复杂度不确定,一个一个找时间复杂度为 O(n),二分查找O(logn) 不适合的场景(一定要保证数据的连续性) 插入 有序数组 最好的时间复杂度 O(1) ,末尾插入,不需要移动数据插入 最坏的时间复杂度O(n) , 开头插入,所有...原创 2022-03-01 11:23:26 · 437 阅读 · 0 评论 -
数据结构之链表(Java)
目录 自身的特点 适合解决的问题 时间复杂度 不适合的应用场景 链表常用类型 单链表 循环链表 双向链表 单向链表和双向链表如何选择 双向循环链表 链表 VS 数组 检查链表的常用边界 代码 代码练习1 (反转单链表) 代码练习2(检测是否是循环链表) 代码练习3(合并两个有序链表) 代码练习4(删除链表倒数第n个节点) 代码练习5(查找链表中间节点) 自身的特点 不需要连续的内存空间,它可以通过指针将零散的内存碎片串联起来使用 每个零散的内存块相当于一原创 2022-03-01 11:40:27 · 752 阅读 · 0 评论 -
数据结构之栈(Java)
目录 自身的特点 适合解决的问题 时间复杂度 顺序栈和链栈的区别 代码 代码练习1(顺序栈的出入栈) 代码练习2(链栈反转数组) 代码练习3(链栈新增删除) 练习代码4(通过栈实现浏览器前进、后退) 自身的特点 只能在一端进行删除和插入操作 先进后出,后进先出 (栈顶删除数据,栈顶插入数据) 数组实现的栈称为顺序栈,链表实现的栈称为链式栈 适合解决的问题 函数调用栈(函数A中调用另一个函数B,B会先结束,A在结束) 表达式求值(实现比较复杂)原创 2022-03-01 13:11:13 · 295 阅读 · 0 评论