算法
数据结构算法
水不腐-枢不蠹
慢慢来
展开
-
常用排序算法汇总
JS实现原创 2023-07-04 10:22:01 · 626 阅读 · 0 评论 -
稳定排序和不稳定排序
在中枢元素和a[j]交换的时候,很有可能把前面的元素的稳定性打乱,比如序列为5 3 3 4 3 8 9 10 11,现在中枢元素5和3(第5个元素,下标从1开始计)交换就会把元素3的稳定性打乱,所以快速排序是一个不稳定的排序算法,不稳定发生在中枢元素和a[j] 交换的时刻。所以,归并排序也是稳定的排序算法。选择排序是给每个位置选择当前元素最小的,比如给第一个位置选择最小的,在剩余元素里面给第二个元素选择第二小的,依次类推,直到第n - 1个元素,第n个元素不用选择了,因为只剩下它一个最大的元素了。转载 2023-06-29 10:57:52 · 82 阅读 · 0 评论 -
数组,字符串---对位相加或者比较之类的题目
力扣有这么一种题,就是给你两个数组或者字符串进行对位比较或者相加,做这种题的时候,我每次都会给自己挖坑,增大了代码量,比如,就以下面这个例子说下的我给自己挖的坑。原创 2023-06-09 09:23:29 · 70 阅读 · 0 评论 -
双指针解题想法
双指针解题汇总原创 2023-06-06 09:33:35 · 30 阅读 · 0 评论 -
双指针法解决三数之和问题
双指针法解决三数之和问题原创 2023-06-04 10:44:58 · 49 阅读 · 0 评论 -
链表---力扣 2. 两数相加(记录一个教训)
力扣 2. 两数相加原创 2023-05-31 11:14:17 · 38 阅读 · 0 评论 -
链表---关于是否需要使用虚拟节点解题的想法
关于是否需要使用虚拟节点解题的想法原创 2023-05-29 12:45:46 · 83 阅读 · 0 评论 -
数组---螺旋矩阵
力扣的两个螺旋矩阵的题都有了原创 2023-05-27 19:31:43 · 41 阅读 · 0 评论 -
动态规划---子序列问题
子序列问题,力扣的例子原创 2023-05-22 11:50:42 · 30 阅读 · 0 评论 -
动态规划---背包问题
01背包,完全背包,JS实现原创 2023-05-17 11:16:31 · 35 阅读 · 0 评论 -
回溯算法---子集系列
JS 实现,子集系列问题原创 2023-05-11 11:21:27 · 48 阅读 · 0 评论 -
二分查找算法(JS实现)
二分查找在代码实现时,while的判断条件和left、right的边界设置是非常易错的。而他们的设置主要取决于区间的设定,一般可以分为左闭右闭[]和左闭右开[)写法。原创 2023-04-04 11:06:55 · 166 阅读 · 0 评论 -
滑动窗口(JS实现)
利用循环控制终止位置,动态移动初始位置,整个过程类似于平衡不平衡然后循环的过程(终止位置到达满足条件的点,初始位置移动到可以使得条件不满足的点,然后终止位置再次移动到达满足条件的点,初始位置又来破坏这种平衡,不断循环,直到遍历完整个数组)原创 2023-04-05 15:06:38 · 304 阅读 · 0 评论 -
反转链表(JS实现)
定义一个反转链表的头节点,遍历原链表,将每次遍历的元素放入反转链表的最前端。原创 2023-04-08 16:54:10 · 149 阅读 · 0 评论 -
两两交换链表的节点(JS实现)
测试案例 1,2,3,4,创建虚拟头结点,然后dummyhead连2,2连1, 1连3,完成一次交换动作。原创 2023-04-09 10:18:11 · 87 阅读 · 0 评论 -
字符串--KMP算法
KMP原理(前缀表),JS实现,复杂度分析原创 2023-04-17 15:13:58 · 52 阅读 · 0 评论 -
字符串--翻转字符串里的单词(JS实现)
主要思路:移除多余的空格;将整个字符串反转;将每个单词反转原创 2023-04-16 10:15:09 · 115 阅读 · 0 评论 -
递归(原理学习)--JS实现
递归原理+实践(二叉树相关问题,快速排序,归并排序,回溯算法思想等)原创 2023-04-21 11:23:31 · 140 阅读 · 0 评论 -
树--二叉树的所有路径
递归,回溯,要不要手动弹值(回溯的过程可见和不可见)原创 2023-05-03 12:52:49 · 123 阅读 · 1 评论 -
树--从中序与后序遍历序列构造二叉树; 从前序与中序遍历序列构造二叉树
本质原创 2023-05-01 12:56:03 · 42 阅读 · 0 评论 -
树--二叉树理论基础
基础理论原创 2023-04-20 10:58:13 · 49 阅读 · 0 评论 -
栈与队列--有效的括号(JS)
每当遍历到一个左符号的时候,就往栈中添加一个对应的右符号;当遍历到一个右符号的时候,就和栈顶元素比较,具体有三种情况,原创 2023-04-19 11:48:09 · 64 阅读 · 0 评论