合集-数据结构与算法
摘要:Hi,我是 itchao 我自己工作有 2 两年多的前端开发经验,但是数据结构与算法一直不好,基本就是一个算法小白的水平。 听说大公司面试都要手写算法题,最近为了以后能去更好的公司,然后其实心里比较着急,打算在 LeetCode 刷题,到现在刷了差不多一周,也一直在掘金发博客分享刷题经历,其实也就
阅读全文
摘要:笔记整理自 coderwhy 『TypeScript 高阶数据结构与算法』课程 双向链表:拥有两个指针方向的链表 DoublyNode 结构: prev:指向上一个节点 value:节点值 next:指向下一个节点 DoublyLinkedList 属性: head:头节点 tail:尾节点 len
阅读全文
摘要:笔记整理自 coderwhy 『TypeScript 高阶数据结构与算法』课程 概念 本质:一种特殊的树结构,由 完全二叉树 实现 多数情况为二叉堆 二叉堆:最大堆、最小堆 最大堆:堆上的每个节点都的 大于等于(>=) 其子节点 最小堆:堆上的每个节点都 小于等于(<=) 其子节点 特性 高效解决获
阅读全文
摘要:笔记整理自 coderwhy 『TypeScript 高阶数据结构与算法』课程 特性 本质:允许队列在两端进行 入队 和 出队 操作 设计 实现方式:基于 数组 实现 属性: data:存放队列元素 方法: enqueue(value):尾部入队 deleteBack:尾部出队 dequeue:头部
阅读全文
摘要:笔记整理自 coderwhy 『TypeScript 高阶数据结构与算法』课程 特性 效率比普通队列高 每个出队元素拥有最高优先级 可以用 数组、链表 等数据结构实现,但是 堆结构 是最常用的实现方式 设计 实现方式:基于 堆结构 实现,堆结构底层基于数组实现 属性: heap:存放队列元素 方法:
阅读全文
摘要:笔记整理自 coderwhy 『TypeScript 高阶数据结构与算法』课程 概念 本质:相邻元素两两比较并交换位置,使整个序列按照特定的顺序排列 特性 复杂度分析 时间复杂度: 最好情况:O(n) 最坏情况:O(n^2) 平均情况:O(n^2) 空间复杂度:O(1),原地排序 使用场景 因为时间
阅读全文
摘要:笔记整理自 coderwhy 『TypeScript 高阶数据结构与算法』课程 概念 本质:两两元素相比较,先扫描一遍未排序数列,把未排序的数列中的最小(大)元素,放到数列的已排序的末尾 特性 选择排序是冒泡排序的优化版本,主要优化了交换的过程 在所有完全依靠交换去移动元素的排序方法中,选择排序属于
阅读全文
摘要:笔记整理自 coderwhy 『TypeScript 高阶数据结构与算法』课程 概念 本质:将数列分为已排序和未排序,将未排序中的元素插入到已排序中的合适位置 特性 复杂度分析 时间复杂度: 最好情况:O(n),有序序列 最坏情况:O(n^2),倒序序列 平均情况:O(n^2),随机数列 空间复杂度
阅读全文