Hello 算法 1.2.0 繁体中文 Java 版. . . . . . . . . . . . 367 1 第 0 章 前言 Abstract 演算法猶如美妙的交響樂,每一行程式碼都像韻律般流淌。 願這本書在你的腦海中輕輕響起,留下獨特而深刻的旋律。 第 0 章 前言 www.hello‑algo.com 2 0.1 關於本書 本專案旨在建立一本開源、免費、對新手友好的資料結構與演算法入門教程。 ‧ 全書採用動畫圖解,內容清 有限,可以先跳過。 ‧ 專業術語會使用黑體(紙質版和 PDF 版)或新增下劃線(網頁版),例如陣列(array)。建議記住它們, 以便閱讀文獻。 ‧ 重點內容和總結性語句會 加粗,這類文字值得特別關注。 ‧ 有特指含義的詞句會使用“引號”標註,以避免歧義。 ‧ 當涉及程式語言之間不一致的名詞時,本書均以 Python 為準,例如使用 None 來表示“空”。 ‧ 本書部分放棄了程式語言 享你的見解,幫助他人進步。 圖 0‑7 評論區示例 0.2.5 演算法學習路線 從總體上看,我們可以將學習資料結構與演算法的過程劃分為三個階段。 1. 階段一:演算法入門。我們需要熟悉各種資料結構的特點和用法,學習不同演算法的原理、流程、用途 和效率等方面的內容。 2. 階段二:刷演算法題。建議從熱門題目開刷,先積累至少 100 道題目,熟悉主流的演算法問題。初次刷 題時,“知識遺忘”可能是0 码力 | 379 页 | 18.79 MB | 10 月前3
Hello 算法 1.0.0b4 Java版。 「物理结构」反映了数据在计算机内存中的存储方式,可分为数组的连续空间存储和链表的离散空间存储。物 理结构从底层决定了数据的访问、更新、增删等操作方法,同时在时间效率和空间效率方面呈现出互补的特 点。 3. 数据结构 hello‑algo.com 39 Figure 3‑3. 连续空间存储与离散空间存储 所有数据结构都是基于数组、链表或二者的组合实现的。例如,栈和队列既可以使用数组实现,也可以使用 个字节表示。对于 2 字节的字符,UTF‑16 编码与 Unicode 码 点相等。 ‧ UTF‑32 编码:每个字符都使用 4 个字节。这意味着 UTF‑32 会比 UTF‑8 和 UTF‑16 更占用空间,特 别是对于主要使用 ASCII 字符的文本。 从存储空间的角度看,使用 UTF‑8 表示英文字符非常高效,因为它仅需 1 个字节;使用 UTF‑16 编码某些非 英文字符(例如中文)会更加高效,因为它只需要 基于链表实现的栈可以提供更加稳定的效率表现。 5. 栈与队列 hello‑algo.com 74 空间效率 在初始化列表时,系统会为列表分配“初始容量”,该容量可能超过实际需求。并且,扩容机制通常是按照特 定倍率(例如 2 倍)进行扩容,扩容后的容量也可能超出实际需求。因此,基于数组实现的栈可能造成一定 的空间浪费。 然而,由于链表节点需要额外存储指针,因此链表节点占用的空间相对较大。 综上,0 码力 | 342 页 | 27.39 MB | 1 年前3
Apache Shiro 1.2.x Reference Manual 中文翻译bean 的名字 [optional_configN]是一个可选的括号内的对特定的路径,特定的过滤器有特定含义的字 符串(每个过滤器,每个路径的具体配置!)。若果该过滤器对该 URL 路径并不需要特 定的配置,你可以忽略括号,于是 filteNr[] 就变成了 filterN. 因为过滤器标志符定义了链(又名列表),所以请记住顺序问题!请按顺序定义好你的逗号 分隔的列表,这样请求就能够流通这个链。 everything is as it was before 这种方法在框架开发中也是很有用的。例如,Shiro 对 secure Spring remoting 的支持确保了 远程调用能够作为一个特 定的 Subject 来执行: Subject.Builder builder = new Subject.Builder(); //populate the builder's attributes Enlisted (这个是 Star-Trek《星际迷航》 里面的角色) 一旦你创建了组,添加 Jean-Luc Picard 到 Captains 和 Officers 分组。 您可能想要创建一些特 别账户,并将它们添加到您喜欢的任何组。 确保一些帐户不重叠组,这样你就可以看到变化基于 单独的组分配到用户帐户。 Step 6b: RBAC Tags 修改 home.jsp 内容 Apache0 码力 | 196 页 | 2.34 MB | 1 年前3
JAVA 应用与开发 - 高级类特性定义�方法�������类��名�� ������������� (仅讲授包含静态嵌套类和匿名内部类,其他自行学习) 20 29 ����类 O 静态嵌套类的特征 ����类����/�用��类�特����������� �类���� ������类的�象�����类的�象�������� ���接��������法�����类��接����� 类的� static ��� 课程配套代码 ±0 码力 | 61 页 | 677.55 KB | 1 年前3
Linux Docker Messn http://futurist.se/gldt/ Timeline Ubuntu http://www.ubuntu.com Ubuntu由Mark Shuttleworth(马克·舍特尔沃斯)创立,Ubuntu以 Debian GNU/Linux不稳定分支为开发基础。 嵌入式Linux uClinux. http://www.uclinux.org/ RTLinux. https://en0 码力 | 77 页 | 7.40 MB | 1 年前3
Hello 算法 1.1.0 Java版景做出恰当选择。 2. Q & A Q:数组存储在栈上和存储在堆上,对时间效率和空间效率是否有影响? 存储在栈上和堆上的数组都被存储在连续内存空间内,数据操作效率基本一致。然而,栈和堆具有各自的特 点,从而导致以下不同点。 1. 分配和释放效率:栈是一块较小的内存,分配由编译器自动完成;而堆内存相对更大,可以在代码中动 态分配,更容易碎片化。因此,堆上的分配和释放操作通常比栈上的慢。 2 于扩容是低频操作,因此平均效率更高。 ‧ 基于链表实现的栈可以提供更加稳定的效率表现。 空间效率 在初始化列表时,系统会为列表分配“初始容量”,该容量可能超出实际需求;并且,扩容机制通常是按照特 定倍率(例如 2 倍)进行扩容的,扩容后的容量也可能超出实际需求。因此,基于数组实现的栈可能造成一 定的空间浪费。 然而,由于链表节点需要额外存储指针,因此链表节点占用的空间相对较大。 综上 都需要进行多个步骤的节点操作。 Q:为什么 DFS 遍历二叉树有前、中、后三种顺序,分别有什么用呢? 与顺序和逆序遍历数组类似,前序、中序、后序遍历是三种二叉树遍历方法,我们可以使用它们得到一个特 定顺序的遍历结果。例如在二叉搜索树中,由于节点大小满足 左子节点值 < 根节点值 < 右子节点值 ,因此 我们只要按照“左 → 根 → 右”的优先级遍历树,就可以获得有序的节点序列。 Q:右旋操作是处理失衡节点0 码力 | 378 页 | 18.47 MB | 1 年前3
Hello 算法 1.0.0 Java版景做出恰当选择。 2. Q & A Q:数组存储在栈上和存储在堆上,对时间效率和空间效率是否有影响? 存储在栈上和堆上的数组都被存储在连续内存空间内,数据操作效率基本一致。然而,栈和堆具有各自的特 点,从而导致以下不同点。 1. 分配和释放效率:栈是一块较小的内存,分配由编译器自动完成;而堆内存相对更大,可以在代码中动 态分配,更容易碎片化。因此,堆上的分配和释放操作通常比栈上的慢。 2 于扩容是低频操作,因此平均效率更高。 ‧ 基于链表实现的栈可以提供更加稳定的效率表现。 空间效率 在初始化列表时,系统会为列表分配“初始容量”,该容量可能超出实际需求;并且,扩容机制通常是按照特 定倍率(例如 2 倍)进行扩容的,扩容后的容量也可能超出实际需求。因此,基于数组实现的栈可能造成一 定的空间浪费。 然而,由于链表节点需要额外存储指针,因此链表节点占用的空间相对较大。 综上 都需要进行多个步骤的节点操作。 Q:为什么 DFS 遍历二叉树有前、中、后三种顺序,分别有什么用呢? 与顺序和逆序遍历数组类似,前序、中序、后序遍历是三种二叉树遍历方法,我们可以使用它们得到一个特 定顺序的遍历结果。例如在二叉搜索树中,由于节点大小满足 左子节点值 < 根节点值 < 右子节点值 ,因此 我们只要按照“左 → 根 → 右”的优先级遍历树,就可以获得有序的节点序列。 Q:右旋操作是处理失衡节点0 码力 | 376 页 | 17.59 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Java 版景做出恰当选择。 2. Q & A Q:数组存储在栈上和存储在堆上,对时间效率和空间效率是否有影响? 存储在栈上和堆上的数组都被存储在连续内存空间内,数据操作效率基本一致。然而,栈和堆具有各自的特 点,从而导致以下不同点。 1. 分配和释放效率:栈是一块较小的内存,分配由编译器自动完成;而堆内存相对更大,可以在代码中动 态分配,更容易碎片化。因此,堆上的分配和释放操作通常比栈上的慢。 2 于扩容是低频操作,因此平均效率更高。 ‧ 基于链表实现的栈可以提供更加稳定的效率表现。 空间效率 在初始化列表时,系统会为列表分配“初始容量”,该容量可能超出实际需求;并且,扩容机制通常是按照特 定倍率(例如 2 倍)进行扩容的,扩容后的容量也可能超出实际需求。因此,基于数组实现的栈可能造成一 定的空间浪费。 然而,由于链表节点需要额外存储指针,因此链表节点占用的空间相对较大。 综上 都需要进行多个步骤的节点操作。 Q:为什么 DFS 遍历二叉树有前、中、后三种顺序,分别有什么用呢? 与顺序和逆序遍历数组类似,前序、中序、后序遍历是三种二叉树遍历方法,我们可以使用它们得到一个特 定顺序的遍历结果。例如在二叉搜索树中,由于节点大小满足 左子节点值 < 根节点值 < 右子节点值 ,因此 我们只要按照“左 → 根 → 右”的优先级遍历树,就可以获得有序的节点序列。 Q:右旋操作是处理失衡节点0 码力 | 379 页 | 18.48 MB | 10 月前3
Hello 算法 1.0.0b5 Java版个字节表示。对于 2 字节的字符,UTF‑16 编码与 Unicode 码点相等。 ‧ UTF‑32 编码:每个字符都使用 4 个字节。这意味着 UTF‑32 会比 UTF‑8 和 UTF‑16 更占用空间,特 别是对于 ASCII 字符占比较高的文本。 第 3 章 数据结构 hello‑algo.com 61 从存储空间的角度看,使用 UTF‑8 表示英文字符非常高效,因为它仅需 1 个字节;使用 UTF‑16 基于链表实现的栈可以提供更加稳定的效率表现。 空间效率 第 5 章 栈与队列 hello‑algo.com 91 在初始化列表时,系统会为列表分配“初始容量”,该容量可能超过实际需求。并且,扩容机制通常是按照特 定倍率(例如 2 倍)进行扩容,扩容后的容量也可能超出实际需求。因此,基于数组实现的栈可能造成一定 的空间浪费。 然而,由于链表节点需要额外存储指针,因此链表节点占用的空间相对较大。 综上,0 码力 | 376 页 | 30.69 MB | 1 年前3
Apache Shiro参考手册中文版everything is as it was before 这种方法在框架开发中也是很有用的。例如,Shiro 对 secure Spring remoting 的支持确保了远程调用能够作为一个特 定的 Subject 来执行: Subject.Builder builder = new Subject.Builder();0 码力 | 92 页 | 1.16 MB | 1 年前3
共 13 条
- 1
- 2













