Hello 算法 1.0.0b4 Java版组进程进行循环。每个进程被赋予一个时间片,当时间片用完时,CPU 将切换到下一个进程。这种循 环的操作就可以通过循环链表来实现。 ‧ 数据缓冲区:在某些数据缓冲区的实现中,也可能会使用到循环链表。比如在音频、视频播放器中,数 据流可能会被分成多个缓冲块并放入一个循环链表,以便实现无缝播放。 4.3. 列表 数组长度不可变导致实用性降低。在许多情况下,我们事先无法确定需要存储多少数据,这使数组长度的选 择变得困难。若长度过 Figure 7‑23. 二叉搜索树的平衡与退化 7.4.3. 二叉搜索树常见应用 ‧ 用作系统中的多级索引,实现高效的查找、插入、删除操作。 ‧ 作为某些搜索算法的底层数据结构。 ‧ 用于存储数据流,以保持其有序状态。 7.5. AVL 树 * 在二叉搜索树章节中,我们提到了在多次插入和删除操作后,二叉搜索树可能退化为链表。这种情况下,所 有操作的时间复杂度将从 ?(log ?) 恶化为 删除节点后,AVL 树 不会退化,从而使得各种操作的时间复杂度保持在 ?(log ?) 级别。换句话说,在需要频繁进行增删查改操 作的场景中,AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。 7.5.1. AVL 树常见术语 「AVL 树」既是二叉搜索树也是平衡二叉树,同时满足这两类二叉树的所有性质,因此也被称为「平衡二叉搜 索树」。 7. 树 hello‑algo.com 1360 码力 | 342 页 | 27.39 MB | 1 年前3
Hello 算法 1.1.0 Java版组进程进行循环。每个进程被赋予一个时间片,当时间片用完时,CPU 将切换到下一个进程。这种循 环操作可以通过环形链表来实现。 ‧ 数据缓冲区:在某些数据缓冲区的实现中,也可能会使用环形链表。比如在音频、视频播放器中,数据 流可能会被分成多个缓冲块并放入一个环形链表,以便实现无缝播放。 4.3 列表 列表(list)是一个抽象的数据结构概念,它表示元素的有序集合,支持元素访问、修改、添加、删除和遍历 等操作,无须使用 (?) 。 图 7‑23 二叉搜索树退化 7.4.3 二叉搜索树常见应用 ‧ 用作系统中的多级索引,实现高效的查找、插入、删除操作。 ‧ 作为某些搜索算法的底层数据结构。 ‧ 用于存储数据流,以保持其有序状态。 7.5 AVL 树 * 在“二叉搜索树”章节中我们提到,在多次插入和删除操作后,二叉搜索树可能退化为链表。在这种情况下, 所有操作的时间复杂度将从 ?(log ?) 劣化为 除节点后,AVL 树不 会退化,从而使得各种操作的时间复杂度保持在 ?(log ?) 级别。换句话说,在需要频繁进行增删查改操作 的场景中,AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。 7.5.1 AVL 树常见术语 AVL 树既是二叉搜索树,也是平衡二叉树,同时满足这两类二叉树的所有性质,因此是一种平衡二叉搜索树 (balanced binary search tree)。0 码力 | 378 页 | 18.47 MB | 1 年前3
Hello 算法 1.0.0b5 Java版组进程进行循环。每个进程被赋予一个时间片,当时间片用完时,CPU 将切换到下一个进程。这种循 环的操作就可以通过循环链表来实现。 ‧ 数据缓冲区:在某些数据缓冲区的实现中,也可能会使用到循环链表。比如在音频、视频播放器中,数 据流可能会被分成多个缓冲块并放入一个循环链表,以便实现无缝播放。 第 4 章 数组与链表 hello‑algo.com 76 4.3 列表 数组长度不可变导致实用性降低。在实际中,我们可能事先无法确定需要存储多少数据,这使数组长度的选 (?) 。 图 7‑23 二叉搜索树的退化 7.4.3 二叉搜索树常见应用 ‧ 用作系统中的多级索引,实现高效的查找、插入、删除操作。 ‧ 作为某些搜索算法的底层数据结构。 ‧ 用于存储数据流,以保持其有序状态。 7.5 AVL 树 * 在二叉搜索树章节中,我们提到了在多次插入和删除操作后,二叉搜索树可能退化为链表。这种情况下,所 有操作的时间复杂度将从 ?(log ?) 恶化为 ?( 除节点后,AVL 树 不会退化,从而使得各种操作的时间复杂度保持在 ?(log ?) 级别。换句话说,在需要频繁进行增删查改操 作的场景中,AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。 第 7 章 树 hello‑algo.com 156 7.5.1 AVL 树常见术语 AVL 树既是二叉搜索树也是平衡二叉树,同时满足这两类二叉树的所有性质,因此也被称为「平衡二叉搜索 树0 码力 | 376 页 | 30.69 MB | 1 年前3
Hello 算法 1.0.0 Java版组进程进行循环。每个进程被赋予一个时间片,当时间片用完时,CPU 将切换到下一个进程。这种循 环操作可以通过环形链表来实现。 ‧ 数据缓冲区:在某些数据缓冲区的实现中,也可能会使用环形链表。比如在音频、视频播放器中,数据 流可能会被分成多个缓冲块并放入一个环形链表,以便实现无缝播放。 4.3 列表 「列表 list」是一个抽象的数据结构概念,它表示元素的有序集合,支持元素访问、修改、添加、删除和遍历 等操作,无须使 (?) 。 图 7‑23 二叉搜索树退化 7.4.3 二叉搜索树常见应用 ‧ 用作系统中的多级索引,实现高效的查找、插入、删除操作。 ‧ 作为某些搜索算法的底层数据结构。 ‧ 用于存储数据流,以保持其有序状态。 7.5 AVL 树 * 在“二叉搜索树”章节中我们提到,在多次插入和删除操作后,二叉搜索树可能退化为链表。在这种情况下, 所有操作的时间复杂度将从 ?(log ?) 劣化为 除节点后,AVL 树 不会退化,从而使得各种操作的时间复杂度保持在 ?(log ?) 级别。换句话说,在需要频繁进行增删查改操 作的场景中,AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。 7.5.1 AVL 树常见术语 AVL 树既是二叉搜索树,也是平衡二叉树,同时满足这两类二叉树的所有性质,因此也被称为「平衡二叉搜 索树 balanced binary search tree」。0 码力 | 376 页 | 17.59 MB | 1 年前3
Nacos架构&原理
程,阐述了打造⼀款实用、易用系统的全过程。另外,本书也从设计、架构方面详细介绍了 Nacos 的实现,分享了 Nacos 在业内的最佳实践和用户案例。相信对分布式系统和其实现有兴趣的 技术爱好者,这本书有巨大的参考价值。 Apache RocketMQ 作者 & 创始人 & PMC Chair - 王小瑞(誓嘉) 服务发现,配置中心这两个领域在淘宝 2007 年做分布式系统改造时开始建设,特殊之处在于它是整 级互联网架构等壮举,并且开源了很多自主产品如 Dubbo、RocketMQ、Tengine、Jstorm 等,产 生了巨大的影响力,在互联网行业广泛使用,但是这⼀阶段的开源除了情怀和展示技术影响力之后 很难量化对公司的价值,因此也比较难以持续发展。第二个阶段是 2018 年开始,随着云计算发展, 开源作为⼀种标准加速云计算发展,尤其 K8s 迅速崛起给我们很多启示,作为⼀家云计算公司,阿 里巴巴也在 2018 年 年制定了⼀个全面开源,加速企业数字化转型,影响 100w 开发者的战略目标, 这个阶段的开源发生了本质的两个变化,第⼀更重视社区和生态建设,第二更注重自研、开源、商 业化三位⼀体,讲清开源的价值,能够持续投入开源,解决第⼀阶段难以持续的问题。 Nacos 也 是在这个大势下应运而生,并且快速成为国内首选。 2018 年产品规划会⼀起到舟山小岛上,关于是否开源的时候面临几个核心问题进行深度讨论,第⼀0 码力 | 326 页 | 12.83 MB | 10 月前3
Hello 算法 1.2.0 简体中文 Java 版;而如果给定的数据是固定 位数的整数(例如学号),那么我们就可以用效率更高的“基数排序”来做,将时间复杂度降为 ?(??) , 其中 ? 为位数。当数据体量很大时,节省出来的运行时间就能创造较大价值(成本降低、体验变好等)。 在工程领域中,大量问题是难以达到最优解的,许多问题只是被“差不多”地解决了。问题的难易程度一方 面取决于问题本身的性质,另一方面也取决于观测问题的人的知识储备。人的知识越完备、经验越多,分析 组进程进行循环。每个进程被赋予一个时间片,当时间片用完时,CPU 将切换到下一个进程。这种循 环操作可以通过环形链表来实现。 ‧ 数据缓冲区:在某些数据缓冲区的实现中,也可能会使用环形链表。比如在音频、视频播放器中,数据 流可能会被分成多个缓冲块并放入一个环形链表,以便实现无缝播放。 4.3 列表 列表(list)是一个抽象的数据结构概念,它表示元素的有序集合,支持元素访问、修改、添加、删除和遍历 等操作,无须使用 (?) 。 图 7‑23 二叉搜索树退化 7.4.3 二叉搜索树常见应用 ‧ 用作系统中的多级索引,实现高效的查找、插入、删除操作。 ‧ 作为某些搜索算法的底层数据结构。 ‧ 用于存储数据流,以保持其有序状态。 7.5 AVL 树 * 在“二叉搜索树”章节中我们提到,在多次插入和删除操作后,二叉搜索树可能退化为链表。在这种情况下, 所有操作的时间复杂度将从 ?(log ?) 劣化为0 码力 | 379 页 | 18.48 MB | 10 月前3
Apache Shiro 1.2.x Reference Manual 中文翻译行时,各程序有自己独立的实例会更好些,而不是共同引用一块静态内存。 改变配置就需要重新编译你的程序。 然而,尽管有这些不足,在程序中定制的这种方法在限制内存(memory-constrained )的环 境中还是很有价值的,像智能电话程序。如果你的程序不是运行在一个限制内存的环境中, 你会发现基于文本的配置会更易读易用。 INI Configuration 配置 大多数程序已经改为使用基于文本的配置,不需要依 的Authentication Sequence 是如何起作用的。由于这个原因,以及保证明确的行 为,我们推荐使用显式分配而不是隐式分配。 Realm Authentication 当你理解了Shiro 的主要 认证 工作流后,了解在一个授权尝试中当 Authenticator 与 Realm 交互时到底发生了什么是很重要的。 Supporting AuthenticationTokens 正如在认证流程中提到的,在一个 Shiro 可以理解的用户数据。 5.如果证据不符,抛出 AuthenticationException异常。 这是所有Realm getAuthenticationInfo 实现的最高级别工作流,Realm 在这个过程中可以自 由做自己想做的事情,比如记录日志,修改数据,以及其他,只要对于存储的数据和验证尝 试来讲是合理的就行。 仅有一件事情是必须的,如果 credentials (凭证)和给定的0 码力 | 196 页 | 2.34 MB | 1 年前3
Apache Shiro参考手册中文版CacheManager) CacheManager 创建并管理其他 Shiro 组件使用的 Cache 实例生命周期。因为 Shiro 能够访问许多后台数据源, 由于身份验证,授权和会话管理,缓存在框架中一直是一流的架构功能,用来在同时使用这些数据源时提高 性能。任何现代开源和/或企业的缓存产品能够被插入到 Shiro 来提供一个快速及高效的用户体验。 Cryptography(org.apache 行。如果该实例是一个应用程序单例,而不是一个静态内存引用就再好不过了。 每当你想改变 Shiro 配置时,它需要你重新编译你的应用程序。 然而,即使有这么多警告,直接的编程操作方法在内存受限的环境中仍然是有价值的,如智能手机应用。若你的应 用程序不在一个内存受限的环境下运行,你会发现基于文本的配置要更容易使用和阅读。 INI Configuration 大多数应用程序反而从基于文本的配置受益,能够独立地修改源代码,甚至让那些不熟悉 这种情况在许多类型的应用中发生的是如此的频繁,所以这些功能被内置在 Shiro 中,这样你就能利用它来为 你的应用服务了。现在,无论你使用的是 isRemembered()还是 isAuthenticated()来定制你的视图和工作流都由 你来决定,但 Shiro 将维持这一基本情况以防你需要它。 注销 进行身份验证的反面是释放所有已知的的识别状态。当 Subject 完成了与应用程序的交互后,你可以调用 subject0 码力 | 92 页 | 1.16 MB | 1 年前3
《Java 应用与开发》课程讲义 - 王晓东. . . . . . . . . . . . . . . . . . . 169 13.1.2 Java I/O 流的分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 13.2 基础 I/O 流 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.2.6 Writer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 13.3 常用 I/O 流类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 13.3.1 FileInputStream/FileOutputStream 关闭连接文件的 PrintWriter 输出流 18 } catch (IOException e) { 19 e.printStackTrace(); 20 } 21 } 22 } 对上述代码的几点说明如下: 1. 写文件时如果目标文件不存在,程序运行不会出错,而是自动创建该文件,但如 果目标路径不存在,则会出错。 2. 写文件操作结束后一定要关闭输出流,即关闭文件,否则被操作文件仍处于打开0 码力 | 330 页 | 6.54 MB | 1 年前3
Hello 算法 1.0.0b1 Java版执行算法,从而将生活中的问题搬运到计算机中, 更加高效地解决各式各样的复杂问题。 � 读到这里,如果你感到对数据结构、算法、数组、二分查找等此类概念一知半解,那么就太好 了!因为这正是本书存在的价值,接下来,本书将会一步步地引导你进入数据结构与算法的知 识殿堂。 1.2. 算法是什么 1.2.1. 算法定义 「算法 Algorithm」是在有限时间内解决特定问题的一组指令或操作步骤。算法具有以下特性: 问题。 Figure 7‑22. 二叉搜索树的平衡与退化 7.3.4. 二叉搜索树常见应用 ‧ 系统中的多级索引,高效查找、插入、删除操作。 ‧ 各种搜索算法的底层数据结构。 ‧ 存储数据流,保持其已排序。 7.4. AVL 树 * 在「二叉搜索树」章节中提到,在进行多次插入与删除操作后,二叉搜索树可能会退化为链表。此时所有操作 的时间复杂度都会由 ?(log ?) 劣化至 ?(?) 后,AVL 树仍然 不会发生退化,进而使得各种操作的时间复杂度均能保持在 ?(log ?) 级别。 换言之,在频繁增删查改的使用场景中,AVL 树可始终保持很高的数据增删查改效率,具有很好的应用价值。 7. 树 hello‑algo.com 112 7.4.1. AVL 树常见术语 「AVL 树」既是「二叉搜索树」又是「平衡二叉树」,同时满足这两种二叉树的所有性质,因此又被称为「平衡 二叉搜索树」。0 码力 | 186 页 | 14.71 MB | 1 年前3
共 22 条
- 1
- 2
- 3













