11 2019 档案
摘要:排序算法 如何分析一个“排序算法”?三个方面着手: 执行效率 如何分析一个“排序算法”?三个方面着手: 内存消耗 稳定性 排序比较 排序比较 排序算法动画演示:https://visualgo.net/zh/sorting 插入排序比冒泡排序高效--冒泡排序的数据交换有三个操作,插入排序数据移动只有
阅读全文
摘要:递归 搞懂递归非常重要:递归应用非常广泛,很多数据结构和算法的编码实现都要用到递归,比如 DFS 深度优先搜索、前中后序二叉树遍历等等。 简单讲就是自己调自己 两个步骤:递--层层调用的过程;归--层层返回的过程 可以写出递推公式,如: 优点:代码的表达力很强,写起来简洁。 缺点:空间复杂度高、有堆
阅读全文
摘要:栈 操作受限的线性表 先进后出,后进先出;只能一头进出 顺序栈--基于数组; 链式栈--基于链表 动态扩容栈--基于动态数组结构 栈应用:函数调用栈,表达式求值(操作数栈,运算符栈(比较优先级决定是出栈运算还是入栈)),括号匹配 浏览器前进后退功能实现:两个栈A和B,依次打开的链接,依次入栈A, 后
阅读全文
摘要:数组 线性表 连续内存空间和相同数据类型 随机访问高效,插入删除低效(n数据移动) 容器方案:ArrayList(JAVA),vector(C++) 链表 线性表 非连续内存空间,数据类型可不同,通过指针连接多个结点实现 插入删除高效,查询低效(n遍历) 多种实现:单向链表,循环链表,双向链表 回文
阅读全文
摘要:复杂度描述的是算法执行时间(或占用空间)与数据规模的增长关系,分 时间复杂度和空间复杂度 复杂度分析有不依赖执行环境、成本低、效率高、易操作、指导性强的特点 大O表示法,忽略系数、低阶和常数阶 分析法则:循环、递归,多段--加法法则,嵌套--乘法法则
阅读全文
浙公网安备 33010602011771号