Hello 算法 1.1.0 Swift版的驱动下,一个大而全的字符集 Unicode 应运而 生。 Unicode 的中文名称为“统一码”,理论上能容纳 100 多万个字符。它致力于将全球范围内的字符纳入统一 的字符集之中,提供一种通用的字符集来处理和显示各种语言文字,减少因为编码标准不同而产生的乱码问 题。 自 1991 年发布以来,Unicode 不断扩充新的语言与字符。截至 2022 年 9 月,Unicode 已经包含 149186 个 字符,包括各种语言的字符、符号甚至表情符号等。在庞大的 Unicode 字符集中,常用的字符占用 2 字节, 有些生僻的字符占用 3 字节甚至 4 字节。 Unicode 是一种通用字符集,本质上是给每个字符分配一个编号(称为“码点”),但它并没有规定在计算机 中如何存储这些字符码点。我们不禁会问:当多种长度的 Unicode 码点同时出现在一个文本中时,系统如 何解析字符?例如给定一个长度为 表示英文字符非常高效,因为它仅需 1 字节;使用 UTF‑16 编码某些 非英文字符(例如中文)会更加高效,因为它仅需 2 字节,而 UTF‑8 可能需要 3 字节。 从兼容性的角度看,UTF‑8 的通用性最佳,许多工具和库优先支持 UTF‑8 。 第 3 章 数据结构 hello‑algo.com 63 3.4.5 编程语言的字符编码 对于以往的大多数编程语言,程序运行中的字符串都采用 UTF‑160 码力 | 379 页 | 18.47 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Swift 版的驱动下,一个大而全的字符集 Unicode 应运而 生。 Unicode 的中文名称为“统一码”,理论上能容纳 100 多万个字符。它致力于将全球范围内的字符纳入统一 的字符集之中,提供一种通用的字符集来处理和显示各种语言文字,减少因为编码标准不同而产生的乱码问 题。 自 1991 年发布以来,Unicode 不断扩充新的语言与字符。截至 2022 年 9 月,Unicode 已经包含 149186 个 字符,包括各种语言的字符、符号甚至表情符号等。在庞大的 Unicode 字符集中,常用的字符占用 2 字节, 有些生僻的字符占用 3 字节甚至 4 字节。 Unicode 是一种通用字符集,本质上是给每个字符分配一个编号(称为“码点”),但它并没有规定在计算机 中如何存储这些字符码点。我们不禁会问:当多种长度的 Unicode 码点同时出现在一个文本中时,系统如 何解析字符?例如给定一个长度为 表示英文字符非常高效,因为它仅需 1 字节;使用 UTF‑16 编码某些 非英文字符(例如中文)会更加高效,因为它仅需 2 字节,而 UTF‑8 可能需要 3 字节。 从兼容性的角度看,UTF‑8 的通用性最佳,许多工具和库优先支持 UTF‑8 。 第 3 章 数据结构 www.hello‑algo.com 63 3.4.5 编程语言的字符编码 对于以往的大多数编程语言,程序运行中的字符串都采用0 码力 | 379 页 | 18.48 MB | 10 月前3
Hello 算法 1.0.0 Swift版驱动下,一个大而全的字符集 Unicode 应运而 生。 「Unicode」的中文名称为“统一码”,理论上能容纳 100 多万个字符。它致力于将全球范围内的字符纳入统 一的字符集之中,提供一种通用的字符集来处理和显示各种语言文字,减少因为编码标准不同而产生的乱码 问题。 自 1991 年发布以来,Unicode 不断扩充新的语言与字符。截至 2022 年 9 月,Unicode 已经包含 149186 个 字符,包括各种语言的字符、符号甚至表情符号等。在庞大的 Unicode 字符集中,常用的字符占用 2 字节, 有些生僻的字符占用 3 字节甚至 4 字节。 Unicode 是一种通用字符集,本质上是给每个字符分配一个编号(称为“码点”),但它并没有规定在计算机 中如何存储这些字符码点。我们不禁会问:当多种长度的 Unicode 码点同时出现在一个文本中时,系统如 何解析字符?例如给定一个长度为 表示英文字符非常高效,因为它仅需 1 字节;使用 UTF‑16 编码某些 非英文字符(例如中文)会更加高效,因为它仅需 2 字节,而 UTF‑8 可能需要 3 字节。 从兼容性的角度看,UTF‑8 的通用性最佳,许多工具和库优先支持 UTF‑8 。 第 3 章 数据结构 hello‑algo.com 63 3.4.5 编程语言的字符编码 对于以往的大多数编程语言,程序运行中的字符串都采用 UTF‑160 码力 | 378 页 | 17.59 MB | 1 年前3
Hello 算法 1.0.0b5 Swift版的驱动下,一个大而全的字符集 Unicode 应运而 生。 「Unicode」的全称为“统一字符编码”,理论上能容纳一百多万个字符。它致力于将全球范围内的字符纳入 到统一的字符集之中,提供一种通用的字符集来处理和显示各种语言文字,减少因为编码标准不同而产生的 乱码问题。 自 1991 年发布以来,Unicode 不断扩充新的语言与字符。截止 2022 年 9 月,Unicode 已经包含 表示英文字符非常高效,因为它仅需 1 个字节;使用 UTF‑16 编码某些非 英文字符(例如中文)会更加高效,因为它只需要 2 个字节,而 UTF‑8 可能需要 3 个字节。 从兼容性的角度看,UTF‑8 的通用性最佳,许多工具和库都优先支持 UTF‑8 。 3.4.5 编程语言的字符编码 对于以往的大多数编程语言,程序运行中的字符串都采用 UTF‑16 或 UTF‑32 这类等长的编码。在等长编码 符集,共收录两万多个汉字。Unicode 致力于提供一个完整的字符集标准,收录世界内各种语言的字 符,从而解决由于字符编码方法不一致而导致的乱码问题。 ‧ UTF‑8 是最受欢迎的 Unicode 编码方法,通用性非常好。它是一种变长的编码方法,具有很好的扩展 性,有效提升了存储空间的使用效率。UTF‑16 和 UTF‑32 是等长的编码方法。在编码中文时,UTF‑16 比 UTF‑8 的占用空间更小。Java0 码力 | 376 页 | 30.70 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 Swift 版的驅動下,一個大而全的字符集 Unicode 應運而 生。 Unicode 的中文名稱為“統一碼”,理論上能容納 100 多萬個字元。它致力於將全球範圍內的字元納入統一 的字符集之中,提供一種通用的字符集來處理和顯示各種語言文字,減少因為編碼標準不同而產生的亂碼問 題。 自 1991 年釋出以來,Unicode 不斷擴充新的語言與字元。截至 2022 年 9 月,Unicode 已經包含 149186 個 字元,包括各種語言的字元、符號甚至表情符號等。在龐大的 Unicode 字符集中,常用的字元佔用 2 位元 組,有些生僻的字元佔用 3 位元組甚至 4 位元組。 Unicode 是一種通用字符集,本質上是給每個字元分配一個編號(稱為“碼點”),但它並沒有規定在計算機 中如何儲存這些字元碼點。我們不禁會問:當多種長度的 Unicode 碼點同時出現在一個文字中時,系統如何 解析字元?例如給定一個長度為 表示英文字元非常高效,因為它僅需 1 位元組;使用 UTF‑16 編碼某 些非英文字元(例如中文)會更加高效,因為它僅需 2 位元組,而 UTF‑8 可能需要 3 位元組。 從相容性的角度看,UTF‑8 的通用性最佳,許多工具和庫優先支持 UTF‑8 。 第 3 章 資料結構 www.hello‑algo.com 63 3.4.5 程式語言的字元編碼 對於以往的大多數程式語言,程式執行中的字串都採用0 码力 | 379 页 | 18.79 MB | 10 月前3
Hello 算法 1.0.0b2 Swift版return nil } 10.1.2. 复杂度分析 时间复杂度 ?(?) :其中 ? 为数组或链表长度。 空间复杂度 ?(1) :无需使用额外空间。 10.1.3. 优点与缺点 线性查找的通用性极佳。由于线性查找是依次访问元素的,即没有跳跃访问元素,因此数组或链表皆适用。 线性查找的时间复杂度太高。在数据量 ? 很大时,查找效率很低。 10.2. 二分查找 「二分查找 Binary = , >)来判断元素的相对顺序,进而排序整个数组,理论 最优时间复杂度为 ?(? log ?) 。「非比较排序」不采用,时间复杂度可以达到 ?(?) ,但通用性相对较差。 11.1.2. 理想排序算法 运行快、原地、稳定、正向自适应、通用性好。显然,目前没有发现具备以上所有特性的排序算法,排序算法 的选型使用取决于具体的数据特点与问题特征。 接下来,我们将一起学习各种排序算法,并基于以上评价维度展开分析各个排序算法的优缺点。0 码力 | 199 页 | 15.72 MB | 1 年前3
Hello 算法 1.0.0b1 Swift版return nil } 10.1.2. 复杂度分析 时间复杂度 ?(?) :其中 ? 为数组或链表长度。 空间复杂度 ?(1) :无需使用额外空间。 10.1.3. 优点与缺点 线性查找的通用性极佳。由于线性查找是依次访问元素的,即没有跳跃访问元素,因此数组或链表皆适用。 线性查找的时间复杂度太高。在数据量 ? 很大时,查找效率很低。 10.2. 二分查找 「二分查找 Binary 素的相对顺序。 ‧「非比较类排序」不基于元素之间的比较算子来决定元素的相对顺序。 「比较类排序」的时间复杂度最优为 ?(? log ?) ;而「非比较类排序」可以达到 ?(?) 的时间复杂度,但通用 性较差。 11.1.2. 理想排序算法 ‧ 运行快,即时间复杂度低; ‧ 稳定排序,即排序后相等元素的相对位置不变化; ‧ 原地排序,即运行中不使用额外的辅助空间; ‧ 正向自适应性,0 码力 | 190 页 | 14.71 MB | 1 年前3
共 7 条
- 1













