JavaScript数据结构与算法总结


JavaScript基础知识
JavaScript数据结构与算法总结一——线性结构(数组、链表、栈、队列)
JavaScript数据结构与算法总结二——非线性结构(集合、字典和散列表)
JavaScript数据结构与算法总结三——树(二叉搜索树、平衡树:AVL树&红黑树)
JavaScript数据结构与算法总结四——图(深度优先、广度优先、最短路径:Dijkstra 算法 Floyd-Warshall 算法、最小生成树:Prim 算法 Kruskal 算法)
JavaScript数据结构与算法总结五——排序和查找(冒泡排序 选择排序 插入排序 快速排序 堆排序 顺序查找 二分查找 插值查找)
用JS简单实现一个群智能算法(布谷鸟算法(CS))


前言

JavaScript可以直接写入 HTML 输出流,也可以直接使用node.js。

<!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 分别是图中的两个顶点。顶点也有权重,也称为成本。如果一个 图的顶点对是有序的,则可以称之为有向图。在对有向图中的顶点对排序后,便可以在两 个顶点之间绘制一个箭头。有向图表明了顶点的流向。


排序

查找


动态规划

分治算法

回溯算法

贪心算法


启发式算法

posted @ 2021-05-20 08:13  Patrick-Rex  阅读(27)  评论(0)    收藏  举报  来源