![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javascript算法
文章平均质量分 52
前端算法从入门到入土
繁星召唤
I am because you are; Get busy living or get busy dying.
展开
-
【算法】堆排序
堆排序思路:* 1.让数组变成大根堆* 2.把最后一个位置和堆顶做交换* 3.则最大值在最后,则剩下部分做heapify,则重新调整为大根堆,则堆顶位置和该部分最后位置做交换* 4.重复进行,直到减完,则这样最后就调整完毕,整个数组排完序(为一个升序)* 「时间复杂度:O(N * logN)」* 「空间复杂度:O(1)」原创 2023-04-10 16:05:11 · 129 阅读 · 0 评论 -
【算法】快速排序
快速排序实现思路:随机取出一个值进行划分,大于该值放右边,小于该值放左边(该算法在经典快排的基础上经过荷兰国旗思想和随机思想进行了改造)* 「时间复杂度:O(N*logN)」* 「空间复杂度:O(logN)」* 快速排序其实就是二叉树中前序遍历的处理方式。原创 2023-04-10 08:50:19 · 336 阅读 · 0 评论 -
【算法】插入排序
插入排序实现思路:将一个新的数,和前面的比较,只要当前数小于前一个则和前一个交换位置,否则终止;原创 2023-04-04 08:43:56 · 314 阅读 · 0 评论 -
【算法】冒泡排序
相比于原始的冒泡排序算法,这种优化方式可以减少不必要的比较和交换,从而提高算法的性能。在最坏情况下,即数组已经按照相反的顺序排列,优化后的算法的时间复杂度仍然是O(n^2),但是在其他情况下,算法的性能会得到显著的提升。这样可以减少不必要的比较和交换,从而提高算法的性能。这个实现在每次遍历中都会检查是否进行了交换,并在没有交换的情况下提前退出循环。这样可以减少比较和交换的次数,从而提高算法的性能。原创 2023-04-03 09:05:56 · 503 阅读 · 0 评论 -
【力扣算法】20 - 有效的括号
给定一个只包括'(',')','{','}','[',']'的字符串s,判断字符串是否有效。1.左括号必须用相同类型的右括号闭合。采取入栈和出栈的规则来完成相关的设计。输入: s = '()[]{}'2.左括号必须以正确的顺序闭合。输入: s='(]'原创 2023-03-09 14:14:42 · 79 阅读 · 0 评论