 Hello 算法 1.1.0 Kotlin版现,那么通常比哈希表更快。这是因为哈希函数计算需要开销,时间复杂度的常数项更大。 最后,哈希表的时间复杂度可能发生劣化。例如在链式地址中,我们采取在链表或红黑树中执行查找操作, 仍然有退化至 ?(?) 时间的风险。 Q:多次哈希有不能直接删除元素的缺陷吗?标记为已删除的空间还能再次使用吗? 多次哈希是开放寻址的一种,开放寻址法都有不能直接删除元素的缺陷,需要通过标记删除。标记为已删除 的空间可以再次使 适合对查询性能要求很高的场景,平均时间复杂度为 ?(1) 。 ‧ 不适合需要有序数据或范围查找的场景,因为哈希表无法维护数据的有序性。 ‧ 对哈希函数和哈希冲突处理策略的依赖性较高,具有较大的性能劣化风险。 ‧ 不适合数据量过大的情况,因为哈希表需要额外空间来最大程度地减少冲突,从而提供良好的查询性 能。 树查找 ‧ 适用于海量数据,因为树节点在内存中是分散存储的。 ‧ 适合需要维护有序数据或范围查找的场景。0 码力 | 381 页 | 18.47 MB | 1 年前3 Hello 算法 1.1.0 Kotlin版现,那么通常比哈希表更快。这是因为哈希函数计算需要开销,时间复杂度的常数项更大。 最后,哈希表的时间复杂度可能发生劣化。例如在链式地址中,我们采取在链表或红黑树中执行查找操作, 仍然有退化至 ?(?) 时间的风险。 Q:多次哈希有不能直接删除元素的缺陷吗?标记为已删除的空间还能再次使用吗? 多次哈希是开放寻址的一种,开放寻址法都有不能直接删除元素的缺陷,需要通过标记删除。标记为已删除 的空间可以再次使 适合对查询性能要求很高的场景,平均时间复杂度为 ?(1) 。 ‧ 不适合需要有序数据或范围查找的场景,因为哈希表无法维护数据的有序性。 ‧ 对哈希函数和哈希冲突处理策略的依赖性较高,具有较大的性能劣化风险。 ‧ 不适合数据量过大的情况,因为哈希表需要额外空间来最大程度地减少冲突,从而提供良好的查询性 能。 树查找 ‧ 适用于海量数据,因为树节点在内存中是分散存储的。 ‧ 适合需要维护有序数据或范围查找的场景。0 码力 | 381 页 | 18.47 MB | 1 年前3
 Hello 算法 1.2.0 简体中文 Kotlin 版现,那么通常比哈希表更快。这是因为哈希函数计算需要开销,时间复杂度的常数项更大。 最后,哈希表的时间复杂度可能发生劣化。例如在链式地址中,我们采取在链表或红黑树中执行查找操作, 仍然有退化至 ?(?) 时间的风险。 Q:多次哈希有不能直接删除元素的缺陷吗?标记为已删除的空间还能再次使用吗? 多次哈希是开放寻址的一种,开放寻址法都有不能直接删除元素的缺陷,需要通过标记删除。标记为已删除 的空间可以再次使 适合对查询性能要求很高的场景,平均时间复杂度为 ?(1) 。 ‧ 不适合需要有序数据或范围查找的场景,因为哈希表无法维护数据的有序性。 ‧ 对哈希函数和哈希冲突处理策略的依赖性较高,具有较大的性能劣化风险。 ‧ 不适合数据量过大的情况,因为哈希表需要额外空间来最大程度地减少冲突,从而提供良好的查询性 能。 树查找 ‧ 适用于海量数据,因为树节点在内存中是分散存储的。 ‧ 适合需要维护有序数据或范围查找的场景。0 码力 | 382 页 | 18.48 MB | 10 月前3 Hello 算法 1.2.0 简体中文 Kotlin 版现,那么通常比哈希表更快。这是因为哈希函数计算需要开销,时间复杂度的常数项更大。 最后,哈希表的时间复杂度可能发生劣化。例如在链式地址中,我们采取在链表或红黑树中执行查找操作, 仍然有退化至 ?(?) 时间的风险。 Q:多次哈希有不能直接删除元素的缺陷吗?标记为已删除的空间还能再次使用吗? 多次哈希是开放寻址的一种,开放寻址法都有不能直接删除元素的缺陷,需要通过标记删除。标记为已删除 的空间可以再次使 适合对查询性能要求很高的场景,平均时间复杂度为 ?(1) 。 ‧ 不适合需要有序数据或范围查找的场景,因为哈希表无法维护数据的有序性。 ‧ 对哈希函数和哈希冲突处理策略的依赖性较高,具有较大的性能劣化风险。 ‧ 不适合数据量过大的情况,因为哈希表需要额外空间来最大程度地减少冲突,从而提供良好的查询性 能。 树查找 ‧ 适用于海量数据,因为树节点在内存中是分散存储的。 ‧ 适合需要维护有序数据或范围查找的场景。0 码力 | 382 页 | 18.48 MB | 10 月前3
 Kotlin 1.9.10 官方文档 中文版
List Kotlin 1.9.10 官方文档 中文版
List- { /*……*/ } 关于泛型函数的更多信息,请参见泛型。 尾递归函数 Kotlin 支持一种称为尾递归的函数式编程风格。 对于某些使用循环的算法,可 以使用尾递归替代而不会有堆栈溢出的风险。 当一个函数用 tailrec 修饰符 标记并满足所需的形式条件时,编译器会优化该递归, 留下一个快速而高效 的基于循环的版本: val eps = 1E-10 // "good enough" 就会认为它是一个模块级的公有 API。可以在其他模块中调用 它,并且也可以在调用处内联这样的调用。 这带来了一些由模块做这样变更时导致的二进制兼容的风险—— 声明一个内 联函数但调用它的模块在它修改后并没有重新编译。 为了消除这种由非公有 API 变更引入的不兼容的风险,公有 API 内联函数体 内不允许使用非公有声明,即,不允许使用 private 与 internal 声明以及 其部件。 互操作,并且主要强调确保你现有的代码 库可以与Kotlin 正确交互。你可以轻松地在 Java 中调用 Kotlin 代码以及在 Kotlin 中调用 Java 代码。 这使得采用 Kotlin 更容易、风险更低。内置于 IDE 的自动化 Java 到 Kotlin 转换器可简化现有代码的迁移。 我可以用 Kotlin 做什么? Kotlin 可用于任何类型的开发,无论是服务器端、客户端 Web 还是 0 码力 | 3753 页 | 29.69 MB | 1 年前3
 Kotlin 官方文档中文版  v1.9List Kotlin 官方文档中文版  v1.9List- { /*……*/ } 关于泛型函数的更多信息,请参见泛型。 尾递归函数 Kotlin 支持一种称为尾递归的函数式编程风格。 对于某些使用循环的算法,可以使用尾递归 替代而不会有堆栈溢出的风险。 当一个函数用 tailrec 修饰符标记并满足所需的形式条件 时,编译器会优化该递归, 留下一个快速而高效的基于循环的版本: 函数 562 val eps = 1E-10 // "good 就会认为它是一个模块级的公有 API。可以在其他模块中调用它,并且也可以在调用处内联这 样的调用。 这带来了一些由模块做这样变更时导致的二进制兼容的风险—— 声明一个内联函数但调用它 的模块在它修改后并没有重新编译。 为了消除这种由非公有 API 变更引入的不兼容的风险,公有 API 内联函数体内不允许使用非 公有声明,即,不允许使用 private 与 internal 声明以及其部件。 一个 互操作,并且主要强调确保你现有的代码库可以与Kotlin 正确交互。你可以轻松地在 Java 中调用 Kotlin 代码以及在 Kotlin 中调用 Java 代码。 这使得采 用 Kotlin 更容易、风险更低。内置于 IDE 的自动化 Java 到 Kotlin 转换器可简化现有代码的迁 移。 我可以用 Kotlin 做什么? FAQ 1884 Kotlin 可用于任何类型的开发,无论是服务器端、客户端 0 码力 | 2049 页 | 45.06 MB | 1 年前3
共 4 条
- 1














