首页
AI Coding
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
数据结构与算法
订阅
前端菜鸡的全桟之路
更多收藏集
微信扫码分享
微信
新浪微博
QQ
21篇文章 · 1订阅
排序算法:冒泡排序
当面试官问你什么是排序算法?请你用JavaScript实现一个简单的冒泡排序,如果你没掌握,就会被问住。 从序列的最右边开始比较相邻两个数字的大小,再根据结果交换两个数字的位置,重复这一操作的算法即冒泡排序。 如果比较的数据比左边相邻的数据小,则左移当前比较的数据。 直至当前比…
数据结构:哈希表
哈希是由键(key)和值(value)组成的数据。 使用哈希函数(Hash)计算Joe的值,即字符串"Joe"的哈希值。得到的结果是4928 将得到的哈希值处以数组的长度5,求得其余数。这样的操作叫"mod运算"。此处mod的运算结果为3 将Joe进行mod运算的值作为数组下标…
排序算法:选择排序
选择排序,作为经典的排序算法。与冒泡排序一样,在面试中也常常会被问到,如果你没有掌握,那面试也就结束了😅 从待排序的数据中寻找最小值,将其与序列最左边的数字进行交换,重复这一操作的算法即选择排序。 重复上述操作,直至比较到序列的最后一个元素。 用序列的1号元素与其之后的元素进…
排序算法:插入排序
从序列左端开始依次对数据进行排序的算法称为插入排序。 从未排序区域中,取出最左侧的数字3,将它与已排序区域的数字进行比较。 若左边的数字更大,就交换这两个数字,重复该操作,直到左边已归位的数字比取出的数字更小,或者取出的数字已经被移到整个序列的最左边为止。 5>4,所以交换这两…
排序算法:归并排序的理解与实现
归并排序与堆排序的时间复杂度都为O(nlogn),这两种算法的应用场景较为广泛,本文采用图文形式详细讲解归并排序的实现思路,并用JavaScript将其实现,欢迎各位感兴趣的前端开发者阅读本文。 归并排序算法会将序列分成长度相同的两个子序列,当无法继续往下分时(每个子序列都只有…
数组查找: 线性查找与二分查找
本文将通过图文形式,详细讲解线性查找与二分查找,并用JavaScript将其实现,欢迎各位感兴趣的前端开发者阅读本文。 线性查找是一种在数组中查找数据的算法,从数组的头部开始按顺序往下查找即为线性查找。 从数组的最左边开始查找,将其与6进行比较,如果结果一致,查找便结束,不一致…
数据结构:链表的基础知识
不仅可以从前往后,还可以从后往前遍历数据。 文中使用的图片源自《我的第一本算法书》,如若侵权,请评论区留言,作者立即删除相关图片。
数据结构:堆
堆是一种图的数据结构,被用于实现“优先队列”。 优先队列是一种数据结构,可以自由添加数据,但取出数据时要从最小值开始按顺序取出。在堆的树形结构中,各个顶点被称为“结点(node)”,数据就存储在这些节点中。 如图所示,取出堆中的数字1。 数字6结点的子结点3和5,3为较小者。故…
排序算法:堆排序的理解与实现
堆分为两种: 最大堆和最小堆,两者的差别在于节点的排序方式。 用数组来实现堆,堆中的节点在数组的位置与它的父节点以及子节点的索引之间有一个映射关系。 若计算出的索引大于数组的长度,则当前节点没有子节点。 堆是一个完全二叉树,树的高度是指从树的根节点到最低叶节点所需要的步数。 树…
排序算法:快速排序的理解与实现
快速排序算法:首先会在序列中随机选择一个基准值(pivot),然后将除了基准值以外的数分为“比基准值小的数” 和 “比基准值大的数”这两个类别。再将其排列成以下形式 接着,分别对基准值两边的数组进行快速排序,直至基准值的左侧只有一个数据,则排序完成。 如图所示,我们使用快速排序…