Hello 算法 1.1.0 Dart版个汉字。在 GBK 的编码方案中,ASCII 字符使用一个字节表示,汉字使用两个字节表示。 第 3 章 数据结构 hello‑algo.com 61 3.4.3 Unicode 字符集 随着计算机技术的蓬勃发展,字符集与编码标准百花齐放,而这带来了许多问题。一方面,这些字符集一般 只定义了特定语言的字符,无法在多语言环境下正常工作。另一方面,同一种语言存在多种字符集标准,如 果两台计算机使用 还处于发展早期,那时候使用 16 位的编码就足以表示所有的 Unicode 字符了。 ‧ C# 使用 UTF‑16 编码,主要是因为.NET 平台是由 Microsoft 设计的,而 Microsoft 的很多技术(包 括 Windows 操作系统)都广泛使用 UTF‑16 编码。 由于以上编程语言对字符数量的低估,它们不得不采取“代理对”的方式来表示超过 16 位长度的 Unicode 字符。这是一个 场普及。 ‧ 缓存的大容量和高速度难以兼得。随着 L1、L2、L3 缓存的容量逐步增大,其物理尺寸会变大,与 CPU 核心之间的物理距离会变远,从而导致数据传输时间增加,元素访问延迟变高。在当前技术下,多层级 的缓存结构是容量、速度和成本之间的最佳平衡点。 第 4 章 数组与链表 hello‑algo.com 84 图 4‑9 计算机存储系统 Note 计算机的存储层次结构体现了速度0 码力 | 378 页 | 18.45 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Dart 版GBK 的编码方案中,ASCII 字符使用一个字节表示,汉字使用两个字节表示。 第 3 章 数据结构 www.hello‑algo.com 61 3.4.3 Unicode 字符集 随着计算机技术的蓬勃发展,字符集与编码标准百花齐放,而这带来了许多问题。一方面,这些字符集一般 只定义了特定语言的字符,无法在多语言环境下正常工作。另一方面,同一种语言存在多种字符集标准,如 果两台计算机使用 还处于发展早期,那时候使用 16 位的编码就足以表示所有的 Unicode 字符了。 ‧ C# 使用 UTF‑16 编码,主要是因为.NET 平台是由 Microsoft 设计的,而 Microsoft 的很多技术(包 括 Windows 操作系统)都广泛使用 UTF‑16 编码。 由于以上编程语言对字符数量的低估,它们不得不采取“代理对”的方式来表示超过 16 位长度的 Unicode 字符。这是一个 场普及。 ‧ 缓存的大容量和高速度难以兼得。随着 L1、L2、L3 缓存的容量逐步增大,其物理尺寸会变大,与 CPU 核心之间的物理距离会变远,从而导致数据传输时间增加,元素访问延迟变高。在当前技术下,多层级 的缓存结构是容量、速度和成本之间的最佳平衡点。 第 4 章 数组与链表 www.hello‑algo.com 84 图 4‑9 计算机存储系统 Tip 计算机的存储层次结构体现0 码力 | 378 页 | 18.46 MB | 10 月前3
Hello 算法 1.0.0 Dart版个汉字。在 GBK 的编码方案中,ASCII 字符使用一个字节表示,汉字使用两个字节表示。 第 3 章 数据结构 hello‑algo.com 61 3.4.3 Unicode 字符集 随着计算机技术的蓬勃发展,字符集与编码标准百花齐放,而这带来了许多问题。一方面,这些字符集一般 只定义了特定语言的字符,无法在多语言环境下正常工作。另一方面,同一种语言存在多种字符集标准,如 果两台计算机使用 还处于发展早期,那时候使用 16 位的编码就足以表示所有的 Unicode 字符了。 ‧ C# 使用 UTF‑16 编码,主要是因为.NET 平台是由 Microsoft 设计的,而 Microsoft 的很多技术(包 括 Windows 操作系统)都广泛使用 UTF‑16 编码。 由于以上编程语言对字符数量的低估,它们不得不采取“代理对”的方式来表示超过 16 位长度的 Unicode 字符。这是一个 场普及。 ‧ 缓存的大容量和高速度难以兼得。随着 L1、L2、L3 缓存的容量逐步增大,其物理尺寸会变大,与 CPU 核心之间的物理距离会变远,从而导致数据传输时间增加,元素访问延迟变高。在当前技术下,多层级 的缓存结构是容量、速度和成本之间的最佳平衡点。 第 4 章 数组与链表 hello‑algo.com 84 图 4‑9 计算机存储系统 � 计算机的存储层次结构体现了速度、容量0 码力 | 377 页 | 17.56 MB | 1 年前3
Hello 算法 1.0.0b5 Dart版还处于相对早期的阶段,那时候使用 16 位的编码就足够表 示所有的 Unicode 字符了。 ‧ C# 使用 UTF‑16 编码,主要因为.NET 平台是由 Microsoft 设计的,而 Microsoft 的很多技术,包括 Windows 操作系统,都广泛地使用 UTF‑16 编码。 由于以上编程语言对字符数量的低估,它们不得不采取“代理对”的方式来表示超过 16 位长度的 Unicode 字符。这是一个 有序数 据。然而,我们通常会使用一种更优雅的方式实现堆排序,详见后续的堆排序章节。 ‧ 获取最大的 ? 个元素:这是一个经典的算法问题,同时也是一种典型应用,例如选择热度前 10 的新闻 作为微博热搜,选取销量前 10 的商品等。 8.2 建堆操作 在某些情况下,我们希望使用一个列表的所有元素来构建一个堆,这个过程被称为“建堆操作”。 8.2.1 自上而下构建 我们首先创建一个空堆, undirected graph」和「有向图 directed graph」。 ‧ 在无向图中,边表示两顶点之间的“双向”连接关系,例如微信或 QQ 中的“好友关系”。 ‧ 在有向图中,边具有方向性,即 ? → ? 和 ? ← ? 两个方向的边是相互独立的,例如微博或抖音上 的“关注”与“被关注”关系。 第 9 章 图 hello‑algo.com 184 图 9‑2 有向图与无向图 根据所有顶点是否连通,可分为图0 码力 | 376 页 | 30.67 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 Dart 版有序資料。然而,我們通常會使用一種更優雅的方式實現堆積排序,詳見“堆積排序”章節。 ‧ 獲取最大的 ? 個元素:這是一個經典的演算法問題,同時也是一種典型應用,例如選擇熱度前 10 的新 聞作為微博熱搜,選取銷量前 10 的商品等。 8.2 建堆積操作 在某些情況下,我們希望使用一個串列的所有元素來構建一個堆積,這個過程被稱為“建堆積操作”。 8.2.1 藉助入堆積操作實現 我們首先建 graph)和有向圖(directed graph),如圖 9‑2 所示。 ‧ 在無向圖中,邊表示兩頂點之間的“雙向”連線關係,例如微信或 QQ 中的“好友關係”。 ‧ 在有向圖中,邊具有方向性,即 ? → ? 和 ? ← ? 兩個方向的邊是相互獨立的,例如微博或抖音上 的“關注”與“被關注”關係。 第 9 章 圖 www.hello‑algo.com 188 圖 9‑2 有向圖與無向圖 版的主頁上進行展示,以感謝他們對開源社群的無 私奉獻。 開源的魅力 紙質圖書的兩次印刷的間隔時間往往較久,內容更新非常不方便。 而在本開源書中,內容更迭的時間被縮短至數日甚至幾個小時。 1. 內容微調 如圖 16‑3 所示,每個頁面的右上角都有“編輯圖示”。您可以按照以下步驟修改文字或程式碼。 1. 點選“編輯圖示”,如果遇到“需要 Fork 此倉庫”的提示,請同意該操作。 2. 修改 Markdown0 码力 | 378 页 | 18.77 MB | 10 月前3
共 5 条
- 1













