文章目录
- 前言
- 线性结构
- 数组
- 链表
- 栈
- 队列
- 非线性结构
- 集合
- 字典和散列表
- 字典
- 散列表
- 树
- 二叉树
- 平衡树
- 排序
- 查找
- 动态规划
- 分治算法
- 回溯算法
- 贪心算法
- 启发式算法
JavaScript基础知识JavaScript数据结构与算法总结一——线性结构(数组、链表、栈、队列)JavaScript数据结构与算法总结二——非线性结构(集合、字典和散列表)JavaScript数据结构与算法总结三——树(二叉搜索树、平衡树:AVL树&红黑树)JavaScript数据结构与算法总结四——图(深度优先、广度优先、最短路径:Dijkstra 算法 Floyd-Warshall 算法、最小生成树:Prim 算法 Kruskal 算法)JavaScript数据结构与算法总结五——排序和查找(冒泡排序 选择排序 插入排序 快速排序 堆排序 顺序查找 二分查找 插值查找)用JS简单实现一个群智能算法(布谷鸟算法(CS))
前言
JavaScript可以直接写入 HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var testArray = [77, 41, 31, 43, 11, 33, 21];
document.write(testArray);//写入HTML输出流
print(testArray);//写入打印机,会直接唤起打印机,可以直接打印成纸质文稿
console.log(testArray);//输出到控制台
</script>
</body>
</html>
node.js控制台默认输入是字符串类型,若需要数字类型需要进行转化。
parseInt转换成数字
线性结构
数组
链表
栈
队列
非线性结构
集合
字典和散列表
字典
散列表
树
二叉树
平衡树
BST 存在一个问题:取决于你添加的节点数,树的一条边可能会非常深;也就是说,树的一
条分支会有很多层,而其他的分支却只有几层,这会在需要在某条边上添加、移除和搜索某个节点时引起一些性能问题。
AVL 树是一种自平衡二叉搜索树,意思是任何一个节点左右两侧子树的高度之差最多为 1。
类型 | 平衡度 | 调整频率 | 适用场景 |
AVL树 | 高 | 高 | 查询多,增/删少 |
红黑树 | 低 | 低 | 增/删频繁 |
AVL树
红黑树
## 图 图由边的集合及顶点的集合组成。
边由顶点 对 (v1,v2) 定义,v1 和 v2 分别是图中的两个顶点。顶点也有权重,也称为成本。如果一个 图的顶点对是有序的,则可以称之为有向图。在对有向图中的顶点对排序后,便可以在两 个顶点之间绘制一个箭头。有向图表明了顶点的流向。
排序
查找
动态规划
分治算法
回溯算法
贪心算法
启发式算法