 JavaScript极速入门 —— 内核与引擎—— 内核与引擎 主讲人与课程设计:耕耕 浏览器内核 主流浏览器内核 JavaScript 引擎 主流浏览器JavaScript 引擎 浏览器内核与JavaScript 引擎关系 最初内核的概念包括渲染引擎与JS引擎,目前习惯直接称渲染引擎为内核,JS引擎独立。 浏览器内核 渲染引擎 JavaScript引擎 最初状态 浏览器内核 渲染引擎 JavaScript引擎 目前状态 JavaScript引擎独立了 渲染引擎与JavaScript 引擎 渲染引擎:Rendering Engine,一般习惯将之称为“浏览器内核”,主要功能是解析HTML/CSS进 行渲染页面,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。 JavaScript 引擎:专门处理JavaScript脚本的虚拟机、解释器,用来解释执行js代码。在早期内 核也是包含js引擎的,而现在js引擎越来独立了,可以把它单独提出来。 了,可以把它单独提出来。 总结:渲染引擎(浏览器内核)处理html/css,JavaScript引擎处理JavaScript代码,有js引擎的 地方就能解析js代码 浏览器 渲染引擎(内核) 解析html/css JavaScript引擎 解析JavaScript代码 JavaScript和java什么关系 JavaScript 在刚诞生的时候,它的名字叫 “LiveScript”。但是因为当时0 码力 | 8 页 | 394.47 KB | 1 年前3 JavaScript极速入门 —— 内核与引擎—— 内核与引擎 主讲人与课程设计:耕耕 浏览器内核 主流浏览器内核 JavaScript 引擎 主流浏览器JavaScript 引擎 浏览器内核与JavaScript 引擎关系 最初内核的概念包括渲染引擎与JS引擎,目前习惯直接称渲染引擎为内核,JS引擎独立。 浏览器内核 渲染引擎 JavaScript引擎 最初状态 浏览器内核 渲染引擎 JavaScript引擎 目前状态 JavaScript引擎独立了 渲染引擎与JavaScript 引擎 渲染引擎:Rendering Engine,一般习惯将之称为“浏览器内核”,主要功能是解析HTML/CSS进 行渲染页面,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。 JavaScript 引擎:专门处理JavaScript脚本的虚拟机、解释器,用来解释执行js代码。在早期内 核也是包含js引擎的,而现在js引擎越来独立了,可以把它单独提出来。 了,可以把它单独提出来。 总结:渲染引擎(浏览器内核)处理html/css,JavaScript引擎处理JavaScript代码,有js引擎的 地方就能解析js代码 浏览器 渲染引擎(内核) 解析html/css JavaScript引擎 解析JavaScript代码 JavaScript和java什么关系 JavaScript 在刚诞生的时候,它的名字叫 “LiveScript”。但是因为当时0 码力 | 8 页 | 394.47 KB | 1 年前3
 前端开发者指南(2017)DNS) 学习 HTTP/Networks(包括 CORS 和 WebSockets) 学习网页寄存(通称虚拟主机) 学习前端开发 学习用户界面/交互设计 学习 HTML 和 CSS 学习搜索引擎优化 学习 JavaScript 学习 Web 动画 学习 DOM、BOM 和 jQuery 学习网页字体 & 图标 2 1.6.1.14 1.6.1.15 1.6.1.16 1.6 2 1.7.3 1.7.4 学习可访问性相关知识 学习 web/浏览器 API 学习 JSON (JavaScript 对象表示法) 学习 JS 模板 学习静态网页生成器 通过JS学习计算机科学 学习前端应用架构 学习数据(例如,JSON)API 的设计 学习 React & Redux 学习渐进式 Web 应用 学习设计 JS API 学习web开发工具 学习命令行的使用 学习用户界面/交互设计 学习 HTML 和 CSS 学习搜索引擎优化 学习 JavaScript 学习 Web 动画 学习 DOM、BOM 和 jQuery 学习网页字体 & 图标 学习可访问性相关知识 学习 web/浏览器 API 学习 JSON (JavaScript 对象表示法) 学习 JS 模板 学习静态网页生成器 通过JS学习计算机科学 学习前端应用架构 学习数据(例如,JSON)API0 码力 | 164 页 | 6.43 MB | 1 年前3 前端开发者指南(2017)DNS) 学习 HTTP/Networks(包括 CORS 和 WebSockets) 学习网页寄存(通称虚拟主机) 学习前端开发 学习用户界面/交互设计 学习 HTML 和 CSS 学习搜索引擎优化 学习 JavaScript 学习 Web 动画 学习 DOM、BOM 和 jQuery 学习网页字体 & 图标 2 1.6.1.14 1.6.1.15 1.6.1.16 1.6 2 1.7.3 1.7.4 学习可访问性相关知识 学习 web/浏览器 API 学习 JSON (JavaScript 对象表示法) 学习 JS 模板 学习静态网页生成器 通过JS学习计算机科学 学习前端应用架构 学习数据(例如,JSON)API 的设计 学习 React & Redux 学习渐进式 Web 应用 学习设计 JS API 学习web开发工具 学习命令行的使用 学习用户界面/交互设计 学习 HTML 和 CSS 学习搜索引擎优化 学习 JavaScript 学习 Web 动画 学习 DOM、BOM 和 jQuery 学习网页字体 & 图标 学习可访问性相关知识 学习 web/浏览器 API 学习 JSON (JavaScript 对象表示法) 学习 JS 模板 学习静态网页生成器 通过JS学习计算机科学 学习前端应用架构 学习数据(例如,JSON)API0 码力 | 164 页 | 6.43 MB | 1 年前3
 阮一峰 JavaScript 教程请参考我写的《ECMAScript 6入门》。 JavaScript 语言有一些显著特点,使得它非常值得学习。它既适合 作为学习编程的入门语言,也适合当作日常开发的工作语言。它是目前 最有希望、前途最光明的计算机语言之一。 JavaScript 的发明目的,就是作为浏览器的内置脚本语言,为网页 开发者提供操控浏览器的能力。它是目前唯一一种通用的浏览器脚本语 言,所有浏览器都支持。它可以让网页呈现各种特殊效果,为用户提供 语言本身,虽然是一种解释型语言,但是在现代浏览器 中,JavaScript 都是编译后运行。程序会被高度优化,运行效率接 近二进制程序。而且,JavaScript 引擎正在快速发展,性能将越来 越好。 此外,还有一种 WebAssembly 格式,它是 JavaScript 引擎的中 间码格式,全部都是二进制代码。由于跳过了编译步骤,可以达到接近 强大的性能 导论 - 15 - 本文档使用 书栈(BookStack 可以承受很大的访问量。 JavaScript 是一种开放的语言。它的标准 ECMA-262 是 ISO 国 际标准,写得非常详尽明确;该标准的主要实现(比如 V8 和 SpiderMonkey 引擎)都是开放的,而且质量很高。这保证了这门语 言不属于任何公司或个人,不存在版权和专利的问题。 语言标准由 TC39 委员会负责制定,该委员会的运作是透明的,所有 讨论都是开放的,会议记录都会对外公布。0 码力 | 540 页 | 3.32 MB | 10 月前3 阮一峰 JavaScript 教程请参考我写的《ECMAScript 6入门》。 JavaScript 语言有一些显著特点,使得它非常值得学习。它既适合 作为学习编程的入门语言,也适合当作日常开发的工作语言。它是目前 最有希望、前途最光明的计算机语言之一。 JavaScript 的发明目的,就是作为浏览器的内置脚本语言,为网页 开发者提供操控浏览器的能力。它是目前唯一一种通用的浏览器脚本语 言,所有浏览器都支持。它可以让网页呈现各种特殊效果,为用户提供 语言本身,虽然是一种解释型语言,但是在现代浏览器 中,JavaScript 都是编译后运行。程序会被高度优化,运行效率接 近二进制程序。而且,JavaScript 引擎正在快速发展,性能将越来 越好。 此外,还有一种 WebAssembly 格式,它是 JavaScript 引擎的中 间码格式,全部都是二进制代码。由于跳过了编译步骤,可以达到接近 强大的性能 导论 - 15 - 本文档使用 书栈(BookStack 可以承受很大的访问量。 JavaScript 是一种开放的语言。它的标准 ECMA-262 是 ISO 国 际标准,写得非常详尽明确;该标准的主要实现(比如 V8 和 SpiderMonkey 引擎)都是开放的,而且质量很高。这保证了这门语 言不属于任何公司或个人,不存在版权和专利的问题。 语言标准由 TC39 委员会负责制定,该委员会的运作是透明的,所有 讨论都是开放的,会议记录都会对外公布。0 码力 | 540 页 | 3.32 MB | 10 月前3
 2019-2021 美团技术年货 前端篇在适配开始之前,我们要明确好先做哪些事情。先来回顾一下 Flutter 的三层结构: 在 Flutter 的架构设计中,最上层为框架层,使用 Dart 语言开发,面向 Flutter 业务 的开发者;中间层为引擎层,使用 C/C++ 开发,实现了 Flutter 的渲染管线和 Dart 运行时等基础能力;最下层为嵌入层,负责与平台相关的能力实现。显然我们要做的 是将嵌入层移植到鸿蒙上,确切地说,我们要通过鸿蒙原生提供的平台能力,重新实 将图像上屏。这个流程 的大部分工作都由框架层和引擎层完成,对于鸿蒙的适配,我们主要关注的是与设备 自身能力相关的问题,即: 4 > 2021年美团技术年货 (1) 如何监听设备的 VSync 信号并通知 Flutter 引擎? (2) OpenGL/Vulkan 用于上 屏的窗口对象从何而来? VSync 信号的监听及传递 在 Flutter 引擎的 Android 实现中,设备的 VSync VsyncWaiter 类调用 Android SDK 的 Choreographer.postFrameCallback 方 法, 再 通 过 JNI 一 层 层 传 回 Flutter 引擎消费掉此回调。Java 侧的 VsyncWaiter 核心代码如下: @Override public void asyncWaitForVsync(long cookie) { Choreographer0 码力 | 738 页 | 50.29 MB | 1 年前3 2019-2021 美团技术年货 前端篇在适配开始之前,我们要明确好先做哪些事情。先来回顾一下 Flutter 的三层结构: 在 Flutter 的架构设计中,最上层为框架层,使用 Dart 语言开发,面向 Flutter 业务 的开发者;中间层为引擎层,使用 C/C++ 开发,实现了 Flutter 的渲染管线和 Dart 运行时等基础能力;最下层为嵌入层,负责与平台相关的能力实现。显然我们要做的 是将嵌入层移植到鸿蒙上,确切地说,我们要通过鸿蒙原生提供的平台能力,重新实 将图像上屏。这个流程 的大部分工作都由框架层和引擎层完成,对于鸿蒙的适配,我们主要关注的是与设备 自身能力相关的问题,即: 4 > 2021年美团技术年货 (1) 如何监听设备的 VSync 信号并通知 Flutter 引擎? (2) OpenGL/Vulkan 用于上 屏的窗口对象从何而来? VSync 信号的监听及传递 在 Flutter 引擎的 Android 实现中,设备的 VSync VsyncWaiter 类调用 Android SDK 的 Choreographer.postFrameCallback 方 法, 再 通 过 JNI 一 层 层 传 回 Flutter 引擎消费掉此回调。Java 侧的 VsyncWaiter 核心代码如下: @Override public void asyncWaitForVsync(long cookie) { Choreographer0 码力 | 738 页 | 50.29 MB | 1 年前3
 廖雪峰JavaScript教程,每个语句以 ; 结束,语句块用 {…} 。但是,JavaScript 并不强制要求在每个语句的结尾加 ; ,浏览器中负责执行JavaScript代码的引擎会自动在每个语句 的结尾补上 ; 。 注意:让JavaScript引擎自动加分号在某些情况下会改变程序的语义,导致运行结果与期望不一致。 在本教程中,我们不会省略 ; ,所有语句都会添加 ; 。 例如,下面的一行代码就是一个完整的赋值语句: 会大大增加看懂代码的难度。遇到这种 情况,需要把部分代码抽出来,作为函数来调用,这样可以减少代码的复杂度。 以 // 开头直到行末的字符被视为行注释,注释是给开发人员看到,JavaScript引擎会自动忽略: 1. // 这是一行注释 2. alert('hello'); // 这也是注释 另一种块注释是用 /…/ 把多行字符包裹起来,把一大“块”视为一个注释: 1. /* 从这里开始是块注释 io/liaoxuefeng/content/js/4.html 2.1 基本语法 - 15 - 本文档使用 书栈(BookStack.CN) 构建 2.2 数据类型和变量 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是, 计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数 据,需要定义不同的数据类型。在JavaScript中定义了以下几种数据类型:0 码力 | 264 页 | 2.81 MB | 10 月前3 廖雪峰JavaScript教程,每个语句以 ; 结束,语句块用 {…} 。但是,JavaScript 并不强制要求在每个语句的结尾加 ; ,浏览器中负责执行JavaScript代码的引擎会自动在每个语句 的结尾补上 ; 。 注意:让JavaScript引擎自动加分号在某些情况下会改变程序的语义,导致运行结果与期望不一致。 在本教程中,我们不会省略 ; ,所有语句都会添加 ; 。 例如,下面的一行代码就是一个完整的赋值语句: 会大大增加看懂代码的难度。遇到这种 情况,需要把部分代码抽出来,作为函数来调用,这样可以减少代码的复杂度。 以 // 开头直到行末的字符被视为行注释,注释是给开发人员看到,JavaScript引擎会自动忽略: 1. // 这是一行注释 2. alert('hello'); // 这也是注释 另一种块注释是用 /…/ 把多行字符包裹起来,把一大“块”视为一个注释: 1. /* 从这里开始是块注释 io/liaoxuefeng/content/js/4.html 2.1 基本语法 - 15 - 本文档使用 书栈(BookStack.CN) 构建 2.2 数据类型和变量 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是, 计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数 据,需要定义不同的数据类型。在JavaScript中定义了以下几种数据类型:0 码力 | 264 页 | 2.81 MB | 10 月前3
 阮一峰 《ECMAScript 6入门》 第三版其实都是一个新的变量,所以最后输出的是 6 。你可能会问,如果每一 轮循环的变量 i 都是重新声明的,那它怎么知道上一轮循环的值,从而计算出本 轮循环的值?这是因为 JavaScript 引擎内部会记住上一轮循环的值,初始化本轮的 变量 i 时,就在上一轮循环的基础上进行计算。 另外, for 循环还有一个特别之处,就是设置循环变量的那部分是一个父作用 域,而循环体内部是一个单独的子作用域。 如果要将一个已经声明的变量用于解构赋值,必须非常小心。 // 错误的写法 let x; {x} = {x: 1}; // SyntaxError: syntax error 上面代码的写法会报错,因为 JavaScript 引擎会将 {x} 理解成一个代码块,从而 发生语法错误。只有不将大括号写在行首,避免 JavaScript 将其解释为代码块,才 能解决这个问题。 // 正确的写法 let x; ({x} = over the h goes \u{h}ere // 报错 ` 上面代码中,变量 document 内嵌的模板字符串,对于 LaTEX 语言来说完全是合 法的,但是 JavaScript 引擎会报错。原因就在于字符串的转义。 模板字符串会将 \u00FF 和 \u{42} 当作 Unicode 字符进行转义,所 以 \unicode 解析时报错;而 \x56 会被当作十六进制字符串转义,所0 码力 | 679 页 | 2.66 MB | 1 年前3 阮一峰 《ECMAScript 6入门》 第三版其实都是一个新的变量,所以最后输出的是 6 。你可能会问,如果每一 轮循环的变量 i 都是重新声明的,那它怎么知道上一轮循环的值,从而计算出本 轮循环的值?这是因为 JavaScript 引擎内部会记住上一轮循环的值,初始化本轮的 变量 i 时,就在上一轮循环的基础上进行计算。 另外, for 循环还有一个特别之处,就是设置循环变量的那部分是一个父作用 域,而循环体内部是一个单独的子作用域。 如果要将一个已经声明的变量用于解构赋值,必须非常小心。 // 错误的写法 let x; {x} = {x: 1}; // SyntaxError: syntax error 上面代码的写法会报错,因为 JavaScript 引擎会将 {x} 理解成一个代码块,从而 发生语法错误。只有不将大括号写在行首,避免 JavaScript 将其解释为代码块,才 能解决这个问题。 // 正确的写法 let x; ({x} = over the h goes \u{h}ere // 报错 ` 上面代码中,变量 document 内嵌的模板字符串,对于 LaTEX 语言来说完全是合 法的,但是 JavaScript 引擎会报错。原因就在于字符串的转义。 模板字符串会将 \u00FF 和 \u{42} 当作 Unicode 字符进行转义,所 以 \unicode 解析时报错;而 \x56 会被当作十六进制字符串转义,所0 码力 | 679 页 | 2.66 MB | 1 年前3
 JavaScript 正则表达式迷你书 老姚 - v1.1这三者中任意一个字符,该怎么做呢? 不能写成 [a-z],因为其表示小写字符中的任何一个字符。 可以写成如下的方式:[-az] 或 [az-] 或 [a\-z]。 即要么放在开头,要么放在结尾,要么转义。总之不会让引擎认为是范围表示法就行了。 1.2.2. 排除字符组 纵向模糊匹配,还有一种情形就是,某位字符可以是任何东西,但就不能是 "a"、"b"、"c"。 此时就是排除字符组(反义字符组)的概念。例如 [^abc],表示是一个除 其可视化形式是: JavaScript 正则表达式迷你书 3. 第三章 正则表达式括号的作用 | 第 27 页 对比这两个可视化图片,我们发现,与前者相比,后者多了分组编号,如 Group #1。 其实正则引擎也是这么做的,在匹配过程中,给每一个分组都开辟一个空间,用来存储每一个分组匹配到的 数据。 既然分组可以捕获数据,那么我们就可以使用它们。 3.2.1. 提取数据 比如提取出年、月、日,可以这么做: 点。 • 分支结构“试”的策略是:货比三家。这家不行,换一家吧,还不行,再换。 既然有回溯的过程,那么匹配效率肯定低一些。相对谁呢?相对那些 DFA 引擎, DFA 是“确定型有限自动 机”的简写。 而 JavaScript 的正则引擎是 NFA,NFA 是“非确定型有限自动机”的简写。 大部分语言中的正则都是 NFA,为啥它这么流行呢? 答:你别看我匹配慢,但是我编译快啊,而且我还有趣哦。0 码力 | 89 页 | 3.42 MB | 11 月前3 JavaScript 正则表达式迷你书 老姚 - v1.1这三者中任意一个字符,该怎么做呢? 不能写成 [a-z],因为其表示小写字符中的任何一个字符。 可以写成如下的方式:[-az] 或 [az-] 或 [a\-z]。 即要么放在开头,要么放在结尾,要么转义。总之不会让引擎认为是范围表示法就行了。 1.2.2. 排除字符组 纵向模糊匹配,还有一种情形就是,某位字符可以是任何东西,但就不能是 "a"、"b"、"c"。 此时就是排除字符组(反义字符组)的概念。例如 [^abc],表示是一个除 其可视化形式是: JavaScript 正则表达式迷你书 3. 第三章 正则表达式括号的作用 | 第 27 页 对比这两个可视化图片,我们发现,与前者相比,后者多了分组编号,如 Group #1。 其实正则引擎也是这么做的,在匹配过程中,给每一个分组都开辟一个空间,用来存储每一个分组匹配到的 数据。 既然分组可以捕获数据,那么我们就可以使用它们。 3.2.1. 提取数据 比如提取出年、月、日,可以这么做: 点。 • 分支结构“试”的策略是:货比三家。这家不行,换一家吧,还不行,再换。 既然有回溯的过程,那么匹配效率肯定低一些。相对谁呢?相对那些 DFA 引擎, DFA 是“确定型有限自动 机”的简写。 而 JavaScript 的正则引擎是 NFA,NFA 是“非确定型有限自动机”的简写。 大部分语言中的正则都是 NFA,为啥它这么流行呢? 答:你别看我匹配慢,但是我编译快啊,而且我还有趣哦。0 码力 | 89 页 | 3.42 MB | 11 月前3
 JavaScript 正则表达式迷你书 老姚 - v1.0这三者中任意一个字符,该怎么做呢? 不能写成 [a-z],因为其表示小写字符中的任何一个字符。 可以写成如下的方式:[-az] 或 [az-] 或 [a\-z]。 即要么放在开头,要么放在结尾,要么转义。总之不会让引擎认为是范围表示法就行了。 1.2.2. 排除字符组 纵向模糊匹配,还有一种情形就是,某位字符可以是任何东西,但就不能是 "a"、"b"、"c"。 此时就是排除字符组(反义字符组)的概念。例如 [^abc],表示是一个除 其可视化形式是: JavaScript 正则表达式迷你书 3. 第三章 正则表达式括号的作用 | 第 27 页 对比这两个可视化图片,我们发现,与前者相比,后者多了分组编号,如 Group #1。 其实正则引擎也是这么做的,在匹配过程中,给每一个分组都开辟一个空间,用来存储每一个分组匹配到的 数据。 既然分组可以捕获数据,那么我们就可以使用它们。 3.2.1. 提取数据 比如提取出年、月、日,可以这么做: 点。 • 分支结构“试”的策略是:货比三家。这家不行,换一家吧,还不行,再换。 既然有回溯的过程,那么匹配效率肯定低一些。相对谁呢?相对那些 DFA 引擎, DFA 是“确定型有限自动 机”的简写。 而 JavaScript 的正则引擎是 NFA,NFA 是“非确定型有限自动机”的简写。 大部分语言中的正则都是 NFA,为啥它这么流行呢? 答:你别看我匹配慢,但是我编译快啊,而且我还有趣哦。0 码力 | 89 页 | 3.42 MB | 11 月前3 JavaScript 正则表达式迷你书 老姚 - v1.0这三者中任意一个字符,该怎么做呢? 不能写成 [a-z],因为其表示小写字符中的任何一个字符。 可以写成如下的方式:[-az] 或 [az-] 或 [a\-z]。 即要么放在开头,要么放在结尾,要么转义。总之不会让引擎认为是范围表示法就行了。 1.2.2. 排除字符组 纵向模糊匹配,还有一种情形就是,某位字符可以是任何东西,但就不能是 "a"、"b"、"c"。 此时就是排除字符组(反义字符组)的概念。例如 [^abc],表示是一个除 其可视化形式是: JavaScript 正则表达式迷你书 3. 第三章 正则表达式括号的作用 | 第 27 页 对比这两个可视化图片,我们发现,与前者相比,后者多了分组编号,如 Group #1。 其实正则引擎也是这么做的,在匹配过程中,给每一个分组都开辟一个空间,用来存储每一个分组匹配到的 数据。 既然分组可以捕获数据,那么我们就可以使用它们。 3.2.1. 提取数据 比如提取出年、月、日,可以这么做: 点。 • 分支结构“试”的策略是:货比三家。这家不行,换一家吧,还不行,再换。 既然有回溯的过程,那么匹配效率肯定低一些。相对谁呢?相对那些 DFA 引擎, DFA 是“确定型有限自动 机”的简写。 而 JavaScript 的正则引擎是 NFA,NFA 是“非确定型有限自动机”的简写。 大部分语言中的正则都是 NFA,为啥它这么流行呢? 答:你别看我匹配慢,但是我编译快啊,而且我还有趣哦。0 码力 | 89 页 | 3.42 MB | 11 月前3
 Hello 算法 1.1.0 JavaScript版——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 妙演绎。 事实上,在计算机问世之前,算法和数据结构就已经存在于世界的各个角落。早期的算法相对简单,例如古 代的计数方法和工具制作步骤等。随着文明的进步,算法逐渐变得更加精细和复杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 Tip 如果你对数据结构、算法、数组和二分查找等概念仍感到一知半解,请继续往下阅读,本书将引导你0 码力 | 379 页 | 18.46 MB | 1 年前3 Hello 算法 1.1.0 JavaScript版——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 妙演绎。 事实上,在计算机问世之前,算法和数据结构就已经存在于世界的各个角落。早期的算法相对简单,例如古 代的计数方法和工具制作步骤等。随着文明的进步,算法逐渐变得更加精细和复杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 Tip 如果你对数据结构、算法、数组和二分查找等概念仍感到一知半解,请继续往下阅读,本书将引导你0 码力 | 379 页 | 18.46 MB | 1 年前3
 Hello 算法 1.2.0 简体中文 JavaScript 版——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 妙演绎。 事实上,在计算机问世之前,算法和数据结构就已经存在于世界的各个角落。早期的算法相对简单,例如古 代的计数方法和工具制作步骤等。随着文明的进步,算法逐渐变得更加精细和复杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 Tip 如果你对数据结构、算法、数组和二分查找等概念仍感到一知半解,请继续往下阅读,本书将引导你0 码力 | 379 页 | 18.47 MB | 10 月前3 Hello 算法 1.2.0 简体中文 JavaScript 版——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 妙演绎。 事实上,在计算机问世之前,算法和数据结构就已经存在于世界的各个角落。早期的算法相对简单,例如古 代的计数方法和工具制作步骤等。随着文明的进步,算法逐渐变得更加精细和复杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 Tip 如果你对数据结构、算法、数组和二分查找等概念仍感到一知半解,请继续往下阅读,本书将引导你0 码力 | 379 页 | 18.47 MB | 10 月前3
共 18 条
- 1
- 2













