Web秀
首页
专栏
文章
问答
热点
导航
实例
首页
登录
首页
前端
JavaScript
Vue.js
CSS
Uni-App
专栏
问答
工具
全网热点
导航
前端
设计
实例
登录
#算法#
共找到
算法
相关内容
17
条
优先问答
优先文章
Javan
Lv6
专注于前端知识分享
0
关注
0
关注者
关注
Javan
什么是时间复杂度?
1年前
544999
3292
0
Javan
Lv6
专注于前端知识分享
0
关注
0
关注者
关注
Javan
2年前
说说你对冒泡排序的理解?如何实现?应用场景?
#面试官:说说你对冒泡排序的理解?如何实现?应用场景?#一、是什么冒泡排序(BubbleSort),是一种计算机科学领域的较简单的排序算法冒泡排序的思想就是在每次遍历一遍未排序的数列之后,将一个数据元素浮上去(也就是排好了一个数据)如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”假如我们要把12、35、99、18、76这5个数从大到小进行排序,那么数越大,越需要把它放在前面思路如下:从后开始遍历,首先比较18和76,发现76比18大,就把两个数交换顺序,得到12、35、99、76、18接
546052
3288
0
Javan
Lv6
专注于前端知识分享
0
关注
0
关注者
关注
Javan
2年前
说说你对贪心算法、回溯算法的理解?应用场景?
#面试官:说说你对贪心算法、回溯算法的理解?应用场景?#一、贪心算法贪心算法,又称贪婪算法,是算法设计中的一种思想其期待每一个阶段都是局部最优的选择,从而达到全局最优,但是结果并不一定是最优的举个零钱兑换的例子,如果你有1元、2元、5元的钱币数张,用于兑换一定的金额,但是要求兑换的钱币张数最少如果现在你要兑换11元,按照贪心算法的思想,先选择面额最大的5元钱币进行兑换,那么就得到11=5+5+1的选择,这种情况是最优的但是如果你手上钱币的面额为1、3、4,想要兑换6元,按照贪心算法的思路,我们会6=4+1
545094
3347
0
Javan
Lv6
专注于前端知识分享
0
关注
0
关注者
关注
Javan
2年前
说说说你对分而治之、动态规划的理解?区别?
#面试官:说说你对分而治之、动态规划的理解?区别?#一、分而治之分而治之是算法设计中的一种方法,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并关于分而治之的实现,都会经历三个步骤:分解:将原问题分解为若干个规模较小,相对独立,与原问题形式相同的子问题解决:若子问题规模较小且易于解决时,则直接解。否则,递归地解决各子问题合并:将各子问题的解合并为原问题的解实际上,关于分而治之的思想,我们在前面已经使用,例如归并排序的实现,同样经历了实现
545945
3214
0
Javan
Lv6
专注于前端知识分享
0
关注
0
关注者
关注
Javan
2年前
说说你对二分查找的理解?如何实现?应用场景?
#面试官:说说你对二分查找的理解?如何实现?应用场景?#一、是什么在计算机科学中,二分查找算法,也称折半搜索算法,是一种在有序数组中查找某一特定元素的搜索算法想要应用二分查找法,则这一堆数应有如下特性:存储在数组中有序排序搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较如果在某一步骤数组为空,则代表找不到这种搜索算法每一次比较都使搜索范围缩小一半如下图所示:相比普通的
545820
3304
0
Javan
Lv6
专注于前端知识分享
0
关注
0
关注者
关注
Javan
2年前
说说你对快速排序的理解?如何实现?应用场景?
#面试官:说说你对快速排序的理解?如何实现?应用场景?#一、是什么快速排序(QuickSort)算法是在冒泡排序的基础上进行改进的一种算法,从名字上看就知道该排序算法的特点是快、效率高,是处理大数据最快的排序算法之一实现的基本思想是:通过一次排序将整个无序表分成相互独立的两部分,其中一部分中的数据都比另一部分中包含的数据的值小然后继续沿用此方法分别对两部分进行同样的操作,直到每一个小部分不可再分,所得到的整个序列就变成有序序列例如,对无序表49,38,65,97,76,13,27,49进行快速排序,大致过
545476
3256
0
Javan
Lv6
专注于前端知识分享
0
关注
0
关注者
关注
Javan
2年前
说说你对归并排序的理解?如何实现?应用场景?
#面试官:说说你对归并排序的理解?如何实现?应用场景?#一、是什么归并排序(MergeSort)是建立归并操作上的一种有效,稳定的排序算法,该算法是采用分治法的一个非常典型的应用将已有序的子序列合并,得到完全有序的序列,即先使每个子序列有序,再使子序列段间有序例如对于含有n个记录的无序表,首先默认表中每个记录各为一个有序表(只不过表的长度都为1)然后进行两两合并,使n个有序表变为n/2个长度为2或者1的有序表(例如4个小有序表合并为2个大的有序表)通过不断地进行两两合并,直到得到一个长度为n的有序表为止例
545490
3255
0
Javan
Lv6
专注于前端知识分享
0
关注
0
关注者
关注
Javan
2年前
说说你对插入排序的理解?如何实现?应用场景?
#面试官:说说你对插入排序的理解?如何实现?应用场景?#一、是什么插入排序(InsertionSort),一般也被称为直接插入排序。对于少量元素的排序,它是一个有效、简单的算法其主要的实现思想是将数据按照一定的顺序一个一个的插入到有序的表中,最终得到的序列就是已经排序好的数据插入排序的工作方式像许多人排序一手扑克牌,开始时,我们的左手为空并且桌子上的牌面向下然后,我们每次从桌子上拿走一张牌并将它插入左手中正确的位置,该正确位置需要从右到左将它与已在手中的每张牌进行比较例如一个无序数组3、1、7、5、2、4
546330
3268
0
Javan
Lv6
专注于前端知识分享
0
关注
0
关注者
关注
Javan
2年前
说说你对选择排序的理解?如何实现?应用场景?
#面试官:说说你对选择排序的理解?如何实现?应用场景?#一、是什么选择排序(Selectionsort)是一种简单直观的排序算法,无论什么数据进去都是O(n²)的时间复杂度,所以用到它的时候,数据规模越小越好其基本思想是:首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置然后再从剩余未排序的元素中继续寻找最小(or最大)元素,然后放到已排序序列的末尾以此类推,直到所有元素均排序完毕举个例子,一个数组为56、12、80、91、29,其排序过程如下:第一次遍历时,从下标为1的位置即56
545505
3289
0
Javan
Lv6
专注于前端知识分享
0
关注
0
关注者
关注
Javan
5年前
React / Vue 项目时为什么要在列表组件中写 key,其作用是什么?
vue和react都是采用diff算法来对比新旧虚拟节点,从而更新节点。在交叉对比中,当新节点跟旧节点头尾交叉对比没有结果时,会根据新节点的key去对比旧节点数组中的key,从而找到相应旧节点(这里对应的是一个key=>index的map映射)。如果没找到就认为是一个新增节点。而如果没有key,那么就会采用遍历查找的方式去找到对应的旧节点。一种一个map映射,另一种是遍历查找。相比而言。map映射的速度更快。vue部分源码如下://vue项目src/core/vdom/patch.js-488行//以下是
555690
3638
0
下拉加载更多