js总体笔记 作用域与全局对象 当在页面中引入多个js文件的时候,需要把单个js文件中的代码写入一个立即执行函数中,然后将需要使用到的东西返回出来即可,这样可以避免全局变量污染 原型与原型链 prototype 函数,本质上是一个特殊的对象,他的特殊之处之一就是,函数可以直接访问该函数的prototype属性,即 2026-01-30 JavaScript
原型链 原型链 什么是原型链 所有的对象都是通过new 函数的方式创建的 var u1 = new User('邓', '旭明'); // 对象 u1 通过 new User 创建 var u2 = { // 对象 u2 通过 new Object 2026-01-30 JavaScript
快排 快速排序 快速排序背后采用的也是分治的思想。 核心思想 选择基准元素 从数组中 随机选择 一个元素作为基准值(pivot)。 分区操作 将数组中所有小于基准的元素移动到基准的左侧,大于基准的元素移动到右侧。这样,基准就处于它排序后应在的位置上。整个序列就变成了 [比基准小的值] 基准值 [比基准大的 2026-01-30 算法
归并排序 归并排序 核心思想 归并排序,英语 Merge Sort,这是一种基于 分治法 的排序算法。它的基本思想是将一个大的数组分成若干个小的数组,直到每个小数组只有一个元素为止。然后再将这些小数组合并成一个有序的数组。 归并排序工作流程: 分割:将原始数组分成两个部分,递归的将每一个部分的数组继续分割,直 2026-01-30 算法
希尔排序核心思想 希尔排序 希尔排序仍然是插入排序的一种改进版本。 希尔排序主要利用到了插入排序的两个特点: 如果序列基本有序,那么时间复杂度能够达到 O(n) 级别 如果数据量比较小,即便是最坏情况 O(n²) 也和 O(n) 拉不开差距,此时效率也比较高 核心思想 希尔排序的核心思想是采用 分组 的策略来对数据进 2026-01-30 算法
折半插入排序 折半插入排序 核心思想 折半插入排序作为插入排序的改进版,不同的地方在于 寻找插入位置时的操作。我们知道,插入排序分为两大区间,一个是前面排好序的有序队列,另一个是未排好序的乱序队列。例如: 在上面的队列中,前面的 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 算法