摘要: 相关概念 内存消耗 算法的内存消耗可以通过空间复杂度来衡量,排序算法也不例外。不过,针对排序算法的空间复杂度,我们还引入了一个新的概念,原地排序(Sorted in place)。原地排序算法,就是特指空间复杂度是 O(1) 的排序算法 冒泡排序则是原地排序 排序的稳定性 比如我们有一组数据 2,9 阅读全文
posted @ 2023-11-07 16:37 意犹未尽 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 什么是递归 递归是一种非常高效、简洁的编码技巧。只要是满足“三个条件”的问题就可以通过递归代码来解决。 递归需要满足条件 1.找到递推公式 2.找到终止条件 比如查询某个节点以及所有子节点中.包含名字叫xx的。 1.递推公式 根据parentId查找子节点 2.找到children is null的 阅读全文
posted @ 2023-11-07 16:11 意犹未尽 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 什么是队列 跟栈一样是一种操作受限的线性数据结构,满足先进先出的特性 顺序队列实现例子 1 // 用数组实现的队列 2 public class ArrayQueue { 3 // 数组:items,数组大小:n 4 private String[] items; 5 private int n = 阅读全文
posted @ 2023-11-07 15:42 意犹未尽 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 什么是栈 栈是一种“操作受限”的线性表,只允许在一端插入和删除数据。 相比数组和链表,栈带给我的只有限制,并没有任何优势。那我直接使用数组或者链表不就好了吗?为什么还要用这个“操作受限”的“栈”呢? 从功能上来说,数组或链表确实可以替代栈,但你要知道,特定的数据结构是对特定场景的抽象,而且,数组或链 阅读全文
posted @ 2023-11-07 11:52 意犹未尽 阅读(34) 评论(0) 推荐(0) 编辑