08 2021 档案
摘要:什么是二叉查找树(BST)? 这边只简单描述一下什么是二叉查找树,更具体的先不描述了。 二叉查找树的特性: 若它的左子树不为空,则左子树上的所有节点的值都小于它的根节点的值 若它的右子树不为空,则右子树上所有节点的值都大于它的根节点的值 其他的左右子树也分别为二叉查找树 二叉查找树是动态查找表,在查
阅读全文
摘要:算法分类(比较和非比较) 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破 O(nlogn),因此称为非线性时间比较类排序 线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序 排序算法评
阅读全文
摘要:什么是基数排序? 基本思想:基数排序是按照低位先排序,然后收集;再按照高位排序,然后再收集;依次类推,直到最高位 直观表达:就是将每个数按照它的位数进行拆分,对每一个对应的位数进行比较排序,直到所有位数都进行过一遍排序位置 基础排序最重要的就是位数 数字:832 通过位数可以拆分成 个位数,十位数,
阅读全文
摘要:什么是桶排序? 桶排序是计数排序的升级版,有些排序场景计数排序无法使用(数值超出范围或者不是整数)。将数据分到有限数量的桶里,每个桶再分别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序) 算法描述 设置 n 个数量的空桶,并且确定每个桶的范围; 遍历输入数据,并且把数据一个一个放到对应的
阅读全文
摘要:什么是计数排序? 计数排序不是基于比较的排序算法,其核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。 作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数 计数排序最重要的一点,确定范围的整数,比如说范围 0-10,那么数组里面的值就要在 0-10 之间 栗子 序列:
阅读全文
摘要:什么是堆排序? 是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点 在看本文之前请先了解以下概念 完全二叉树:除了最后一层之外的其他每一层都被完全填充,每一层从左到右的填充数据,不能空缺(只是类似这个结
阅读全文
摘要:什么是快速排序? 在一个序列中随机找出一个数(称为基准元素),然后就是比基准元素小的数放在左边,比基准元素大的数放在右边,这样就将一个序列分成了两个子序列,然后再按照同样的方法把子序列再分成更小的子序列,直到不能分解为止 栗子 紫色:基准元素 绿色:比基准元素小的数 黄色:比基准元素大的数 算法描述
阅读全文
摘要:什么是归并排序? 把长度为 n 的输入序列分成两个长度为 n/2 的子序列; 对这两个子序列分别采用归并排序; 将两个排序好的子序列合并成一个最终的排序序列。 总的来说就是先拆分,后合并,合并的同时进行排序 栗子 归并排序就像一场比武大赛 举个例子,有 A、B、C、D、E、F、G、H 一共 8 个武
阅读全文
摘要:我刚开始看这个的时候,一脸懵逼。后面又多看了几篇其他人的文章后才理解了 在了解这个希尔排序之前,我想先进行一个小游戏,大家应该都有玩过。希尔排序原理和这个小游戏差不多 小明(玩家)、安琪拉(出题者) 安琪拉:请你在 0~100 之间,猜一个数,猜的次数越少分数越高 正常玩家,可能会依次从 0 开始一
阅读全文
摘要:什么是插入排序? 就是在数组中从左到右,先取一个数出来,然后把它放到合适的位置 算法描述 假设一个数组中有 2 个区域 5, 8, 2, 3, 1 有序区为空,无序区为 5, 8, 2, 3, 1 首先在无序区中选第一个值(5),把它放在有序区的尾部,第一步基本上不用动 结果:5, 8, 2, 3,
阅读全文
摘要:什么是选择排序? 基本思想:在一个排列中划分为有序区和无序区,有序区在左边,无序区在右边。首先在无序区中找到最小(大)元素,存放到有序区的起始位置,然后,再从剩余的无序区中继续寻找最小(大)元素,然后放到有序区的末尾。以此类推,直到无序区没有元素可排列 直观表达:就是在一个数组中遍历查找,找到小的放
阅读全文
摘要:什么是冒泡排序? 基本思想:冒泡排序,类似于水中冒泡,较大的数沉下去,较小的数慢慢浮起来 直观表达:即在数组排序中,从小到大排序 算法描述 从第一个数开始,每 2 个相邻的数进行比较,小的放在左边,大的放在右边。反反复复重复 n 遍,n 即代表数组的长度 - 1 描述太多也没用,直接看图就能懂了 代
阅读全文
摘要:网上看了很多文章,只想说一句话:“真的啥都没看懂”。以下是我个人的理解,有不对的地方可以提出。 在描述他们之间的区别之前,我们首先要了解一下什么是 BFC、IFC、GFC、FFC? 我们知道元素有内联元素、块级元素、行内块级元素,在页面上渲染时它们的定位,排列方式等都有所不同,就是因为它们根据内部的
阅读全文
摘要:虽然网上有很多关于绘制三角形的代码,但是我相信还是有一部分人是不知道如何实现的。我下面举个栗子。 这种情况应该都能理解,不就是设置一个边框嘛 width: 100px; height: 100px; border: 20px solid; border-color: #000; box-sizing
阅读全文
摘要:什么是回流? 当一个元素自身的宽高,布局,显示或隐藏,或元素内部的文字结构发生变化,导致需要重新构建页面的时候,就产生了回流 什么是重绘? 当一个元素自身的宽高,布局,及显示或隐藏没有改变,而只是改变了元素的外观风格的时候,就产生了重绘 什么时候会进行回流? 添加或者删除可见的 DOM 元素的时候
阅读全文
摘要:为什么要使用 Flex 布局? Flex 布局是目前比较流行的一种布局,因为它十分简单灵活,区区简单几行代码就可以实现各种页面的的布局,以前我在学习页面布局的时候我深受其 float、display、position 这些属性的困扰。使用 Flex 属性就可以写出简洁优雅复杂的页面布局 目前整理了一
阅读全文
摘要:静态布局 描述:就是设定好的长和宽,大小不会改变,不管你多大的屏幕它都是那么大,分辨率是不会改变的 优点:这个对于开发者来说是最简单的一种布局方式,没有什么兼容性的问题 缺点:当屏幕分辨率太低时,会展现出滚动条 场景:传统 web 网站 自适应布局 描述:不同屏幕分辨率下,保持原有展示方式。即元素的
阅读全文
摘要:这个题目没有标准答案,以下是我个人的理解 浏览器通过 DNS 查找域名的 IP 地址 浏览器与目标服务器建立 TCP 连接(3 次握手) 浏览器通过 http 协议发送资源请求(接口、图片、音频、视频、CSS、JS 等等) 服务器端响应 http 请求 浏览器解析渲染 HTML 代码,最终呈现给用户
阅读全文
摘要:web 标准 web 标准主要分为结构、表现、行为 3 部分 结构:指我们平时在 body 里面写的标签,主要是由 HTML 标签组成 表现:指更加丰富 HTML 标签样式,主要由 CSS 样式组成 行为:指页面和用户的交互,主要由 JS 部分组成 W3C W3C 对 web 标准提出了规范化的要求
阅读全文
摘要:什么是浏览器内核? 浏览器内核也可以理解为排版引擎,主要由 2 部分组成,渲染引擎和 JS 引擎 排版引擎主要是负责获取网页内容(HTML、XML、图像、CSS、JS)等信息进行解析、渲染网页,将网页的代码转换为看得到的页面 浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同,常见
阅读全文
摘要:存储大小 cookie:数据大小不能超过 4k localStorage、sessionStorage:数据大小支持 5M 左右,不同浏览器存储大小不同 生命周期(有效时间) cookie:需要设置有效期,过期后 cookie 就会销毁 localStorage:除非被手动清理,否则永久存在 ses
阅读全文
摘要:什么是标签语义化? 提升代码可读性,便于团队开发和维护 为什么要标签语义化? 当网页去掉 CSS 样式时,页面能呈现出来清晰的结构 案例 不存在语义化 <div></div> <div></div> <div></div> 使用语义化 <header></header> <main></main>
阅读全文
浙公网安备 33010602011771号