折半插入排序 折半插入排序 核心思想 折半插入排序作为插入排序的改进版,不同的地方在于 寻找插入位置时的操作。我们知道,插入排序分为两大区间,一个是前面排好序的有序队列,另一个是未排好序的乱序队列。例如: 在上面的队列中,前面的 6 到 45 已经是排好序了的有序队列,右边的 17 到 9 是还未排好序的乱序队列 2026-01-30 算法
二分查找 二分查找 基础知识 二分查找,英语为 Binary Search,这是一种高效的 查找 算法,适用于在 已排序 的数组中快速定位目标元素。其核心思想是通过每次将查找范围缩小一半,逐步逼近目标值,从而实现快速查找。 1-100 之间想好了一个数,来猜这个数,每次猜测后,我会告诉你大了还是小了。 50 2026-01-30 算法
插入排序 插入排序 基本概念 插入排序,对应的英语是 Insertion Sort,其核心思想类似于整理扑克牌:在手中已经排好序的牌堆中,逐张拿出未排序的牌,找到合适的位置插入进去,直到所有牌都有序为止。 下面是插入排序的工作流程: 分区概念:将数组分为两个部分:已排序区间 和 未排序区间。初始时,默认第一个 2026-01-30 算法
选择排序 选择排序 基本概念 选择排序,英语为 Selection Sort,这是一种简单直观的排序算法,其核心思想在于每次从待排序的数组中选出最小(或最大)的元素,并将其放到数组的起始(或末尾)位置,从而逐步构建有序区间。 它的工作原理是: 划分区间:将数组分为两部分:已排序区间 和 未排序区间。初始时已排 2026-01-30 算法
冒泡排序 冒泡排序 基本概念 冒泡排序,英语叫做 Bubble Sort,这是所有排序方法中最为简单的排序方法,该排序算法的核心思想如下: 遍历整个元素序列,每次取出两个 相邻 的元素进行比较 如果顺序不对(看你具体的排序规则:如从大到小、首字母从 Z 到 A),就进行交换 一次遍历完成,称之为完成了一次冒泡 2026-01-30 算法
js数组方法总结 JavaScript 数组方法分类整理 修改原数组的方法(Mutator Methods) 这些方法会直接修改原始数组。 1. push() 作用:在数组末尾添加一个或多个元素 参数:要添加的元素(一个或多个) 返回值:数组的新长度 示例: let arr = [1, 2]; 2026-01-30 JavaScript
递归 递归 常见的算法思维: 分治法 迭代法 枚举法 回溯法 贪心算法 动态规划 递归是典型的分治的思想。 🙋什么是递归? 回答:一种特殊形式的调用形式,指的是函数自己调用自己的形式。 递归代码示例: function a(){ a(); } a(); 上面的代码就是一个递 2026-01-30 算法
常见算法思维 常见算法思维 常见算法思维: 分治法 迭代法 枚举法 回溯法 贪心法 动态规划 1. 分治法 英语里面叫做 divide and Conquer 核心思想 将一个复杂的问题分解成多个简单的子问题,递归地求解这些子问题,如果子问题还是比较复杂,那么就继续进行拆分。最后再将所有子问题的解合并成最终解。 2026-01-30 算法
算法复杂度 常见的复杂度 复杂度分为两种: 时间复杂度 空间复杂度 常见时间复杂度 时间复杂度衡量的是一种变化趋势。随着 n 增大,整个时间花费的 变化趋势 是怎样的。 O(1) O(logn) O(n) O(nlogn) O(n²) O(2n) O(n!) 上面的这几种复杂度,从上往下,随着 n 的增大,时间 2026-01-30 算法
clip-path(盒子裁剪) 裁剪 裁剪一个三角形,之前还在利用border去模拟。 现在一行代码搞定 ele { clip-path: polygon(50% 0, 0 100%, 100% 100% 2026-01-30 css