04 2024 档案

摘要:一、介绍 Promise,译为承诺,是异步编程的一种解决方案,比传统的解决方案(回调函数)更加合理和更加强大 在以往我们如果处理多层异步操作,我们往往会像下面那样编写我们的代码 doSomething(function(result) { doSomethingElse(result, functi 阅读全文
posted @ 2024-04-30 17:29 林恒 阅读(135) 评论(0) 推荐(1) 编辑
摘要:一、什么是双向绑定 我们先从单向绑定切入单向绑定非常简单,就是把Model绑定到View,当我们用JavaScript代码更新Model时,View就会自动更新双向绑定就很容易联想到了,在单向绑定的基础上,用户更新了View,Model的数据也自动被更新了,这种情况就是双向绑定举个栗子 当用户填写表 阅读全文
posted @ 2024-04-29 18:03 林恒 阅读(220) 评论(0) 推荐(1) 编辑
摘要:一、贪心算法 贪心算法,又称贪婪算法,是算法设计中的一种思想 其期待每一个阶段都是局部最优的选择,从而达到全局最优,但是结果并不一定是最优的 举个零钱兑换的例子,如果你有1元、2元、5元的钱币数张,用于兑换一定的金额,但是要求兑换的钱币张数最少 如果现在你要兑换11元,按照贪心算法的思想,先选择面额 阅读全文
posted @ 2024-04-28 18:55 林恒 阅读(66) 评论(0) 推荐(0) 编辑
摘要:一、分而治之 分而治之是算法设计中的一种方法,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并 关于分而治之的实现,都会经历三个步骤: 分解:将原问题分解为若干个规模较小,相对独立,与原问题形式相同的子问题 解决:若子问题规模较小 阅读全文
posted @ 2024-04-26 17:36 林恒 阅读(50) 评论(0) 推荐(0) 编辑
摘要:一、是什么 在计算机科学中,二分查找算法,也称折半搜索算法,是一种在有序数组中查找某一特定元素的搜索算法 想要应用二分查找法,则这一堆数应有如下特性: 存储在数组中 有序排序 搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束 如果某一特定元素大于或者小于中间元素,则在数组 阅读全文
posted @ 2024-04-25 18:48 林恒 阅读(89) 评论(0) 推荐(0) 编辑
摘要:一、是什么 归并排序(Merge Sort)是建立归并操作上的一种有效,稳定的排序算法,该算法是采用分治法的一个非常典型的应用 将已有序的子序列合并,得到完全有序的序列,即先使每个子序列有序,再使子序列段间有序 例如对于含有 n 个记录的无序表,首先默认表中每个记录各为一个有序表(只不过表的长度都为 阅读全文
posted @ 2024-04-24 17:29 林恒 阅读(73) 评论(0) 推荐(0) 编辑
摘要:一、是什么 选择排序(Selection sort)是一种简单直观的排序算法,无论什么数据进去都是 O(n²)的时间复杂度,所以用到它的时候,数据规模越小越好 其基本思想是:首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置 然后再从剩余未排序的元素中继续寻找最小(or最大) 阅读全文
posted @ 2024-04-23 14:49 林恒 阅读(92) 评论(0) 推荐(0) 编辑
摘要:一、是什么 排序是程序开发中非常常见的操作,对一组任意的数据元素经过排序操作后,就可以把他们变成一组一定规则排序的有序序列 排序算法属于算法中的一种,而且是覆盖范围极小的一种,彻底掌握排序算法对程序开发是有很大的帮助的 对与排序算法的好坏衡量,主要是从时间复杂度、空间复杂度、稳定性 时间复杂度、空间 阅读全文
posted @ 2024-04-20 18:19 林恒 阅读(39) 评论(0) 推荐(0) 编辑
摘要:一、是什么 在计算机科学中,图是一种抽象的数据类型,在图中的数据元素通常称为结点,V是所有顶点的集合,E是所有边的集合 如果两个顶点v,w,只能由v向w,而不能由w向v,那么我们就把这种情况叫做一个从 v 到 w 的有向边。v也被称做初始点,w也被称为终点。这种图就被称做有向图 如果v和w是没有顺序 阅读全文
posted @ 2024-04-19 17:34 林恒 阅读(29) 评论(0) 推荐(0) 编辑
摘要:一、是什么 堆(Heap)是计算机科学中一类特殊的数据结构的统称 堆通常是一个可以被看做一棵完全二叉树的数组对象,如下图: 总是满足下列性质: 堆中某个结点的值总是不大于或不小于其父结点的值 堆总是一棵完全二叉树 堆又可以分成最大堆和最小堆: 最大堆:每个根结点,都有根结点的值大于两个孩子结点的值 阅读全文
posted @ 2024-04-18 17:11 林恒 阅读(67) 评论(0) 推荐(0) 编辑
摘要:一、是什么 在计算机领域,树形数据结构是一类重要的非线性数据结构,可以表示数据之间一对多的关系。以树与二叉树最为常用,直观看来,树是以分支关系定义的层次结构 二叉树满足以下两个条件: 本身是有序树 树中包含的各个结点的不能超过 2,即只能是 0、1 或者 2 如下图,左侧的为二叉树,而右侧的因为头结 阅读全文
posted @ 2024-04-17 18:23 林恒 阅读(23) 评论(0) 推荐(0) 编辑
摘要:一、是什么 集合(Set),指具有某种特定性质的事物的总体,里面的每一项内容称作元素 在数学中,我们经常会遇到集合的概念: 有限集合:例如一个班集所有的同学构成的集合 无限集合:例如全体自然数集合 在计算机中集合道理也基本一致,具有三大特性: 确定性:于一个给定的集合,集合中的元素是确定的。即一个元 阅读全文
posted @ 2024-04-16 18:23 林恒 阅读(24) 评论(0) 推荐(0) 编辑
摘要:一、是什么 链表(Linked List)是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的,由一系列结点(链表中每一个元素称为结点)组成 每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域 节点用代码表示,则如下: c 阅读全文
posted @ 2024-04-15 18:36 林恒 阅读(30) 评论(0) 推荐(0) 编辑
摘要:一、栈 栈(stack)又名堆栈,它是一种运算受限的线性表,限定仅在表尾进行插入和删除操作的线性表 表尾这一端被称为栈顶,相反地另一端被称为栈底,向栈顶插入元素被称为进栈、入栈、压栈,从栈顶删除元素又称作出栈 所以其按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时 阅读全文
posted @ 2024-04-11 18:36 林恒 阅读(57) 评论(0) 推荐(0) 编辑
摘要:一、是什么 数据结构是计算机存储、组织数据的方式,是指相互之间存在一种或多种特定关系的数据元素的集合 前面讲到,一个程序 = 算法 + 数据结构,数据结构是实现算法的基础,选择合适的数据结构可以带来更高的运行或者存储效率 数据元素相互之间的关系称为结构,根据数据元素之间关系的不同特性,通常有如下四类 阅读全文
posted @ 2024-04-10 18:21 林恒 阅读(22) 评论(0) 推荐(0) 编辑
摘要:一、前言 算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别 衡量不同算法之间的优劣主要是通过时间和空间两个维度去考量: 时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复 阅读全文
posted @ 2024-04-09 17:34 林恒 阅读(53) 评论(0) 推荐(0) 编辑
摘要:一、是什么 WebSocket,是一种网络传输协议,位于OSI模型的应用层。可在单个TCP连接上进行全双工通信,能更好的节省服务器资源和带宽并达到实时通迅 客户端和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输 从上图可见,websocket服务器与客户端通过握手连接, 阅读全文
posted @ 2024-04-08 18:36 林恒 阅读(92) 评论(0) 推荐(0) 编辑
摘要:一、三次握手 三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包 主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备 过程如下: 第一次握手:客户端给服务端发一个 SYN 报文,并指明客 阅读全文
posted @ 2024-04-07 18:08 林恒 阅读(79) 评论(0) 推荐(0) 编辑
摘要:一、简单分析 简单的分析,从输入 URL到回车后发生的行为如下: URL解析 DNS 查询 TCP 连接 HTTP 请求 响应请求 页面渲染 二、详细分析 URL解析 首先判断你输入的是一个合法的URL 还是一个待搜索的关键词,并且根据你输入的内容进行对应操作 URL的解析第过程中的第一步,一个ur 阅读全文
posted @ 2024-04-03 18:47 林恒 阅读(79) 评论(0) 推荐(0) 编辑