MoonBit月兔编程语言 现代编程思想 第十课 哈希表与闭包现代编程思想 哈希表与闭包 Hongbo Zhang ## 回顾 ## · 表 键值对的集合,其中键不重复 简单实现:二元组列表 - 添加时向队首添加 - 查询时从队首遍历 树实现:二叉平衡树 - 基于第五节课介绍的二叉平衡树,每个节点的数据为键值对 - 对树操作时比较第一个参数 ## 哈希表 - 哈希函数/散列函数 Hash function ◦ 接口中,数据被映射到整数范围内 trait Hash { hash(Self) -> Int } ■ "这是一个非常非常长的字符串".hash() == -900478401 ## · 哈希表 ◦ 利用哈希函数,将数据映射到数组索引中,进行快速的添加、查询、修改 1. // 对于 a: Array[(Key, Value)], key: Key, value: Value 2. let 不同数据的哈希可能相同 不同的哈希映射为数组索引时可能相同 - 解决哈希表的冲突 ◦ 直接寻址(分离链接):同一索引下用另一数据结构存储 列表 二叉平衡搜索树等 ☐ 开放寻址 ■ 线性探查:当发现冲突后,索引递增,直到查找空位放入 ■ 二次探查(索引递增 $ 1^{2}2^{2}3^{2} $ )等 ## 哈希表:直接寻址 - 当发生哈希/索引冲突时,将相同索引的数据装进一个数据结构中0 码力 | 27 页 | 448.83 KB | 2 年前3
通过Oracle 并行处理集成 Hadoop 数据数据库里访问某个文件系统中的外部文件或外部数据,最简单的方法莫过于使用外部表。请参阅这里了解外部表。 外部表以表的形式展示存储在文件系统中的数据,并且可在 SQL 查询中完全透明地使用。因此,可以考虑用外部表从 Oracle 数据库中直接访问 HDFS(Hadoop 文件系统)中存储的数据。遗憾的是,常规的操作系统无法调用外部表驱动直接访问 HDFS 文件。FUSE(File System in U HDFS(如果是 RAC 数据库,则在其所有实例上挂载 HDFS),即可使用外部表基础架构轻松访问 HDFS 文件。  图 1. 用数据库内置的 MapReduce 通过外部表进行访问 在图 1 中,我们利用 Oracle Database 11g mapreduce。通常情况下,Oracle Database 11g 中的并行执行框架足以满足针对外部表大多数的并行操作。 在有些情况下(例如,如果 FUSE 不可用),外部表方法可能不适用。Oracle 表函数提供了从 Hadoop 中获取数据的替代方法。本文附带的示例展示了一种这样的方法。更深入地来讲,我们用一个表函数来实现,这个表函数使用 DBMS_SCHEDULER 框架异步调用外部 shell 脚本,然后由这个0 码力 | 21 页 | 1.03 MB | 2 年前3
2 Sharding-JDBC入门使用phere.version} ## 基于Java编码的规则配置 Sharding-JDBC的分库分表通过规则配置描述,以下例子是根据user_id取模分库,且根据order_id取模分表的两库两表的配置。 // 配置真实数据源 MapdataSourceMap = new HashMap<>(); setUsername("root"); dataSource2.setPassword(); dataSourceMap.put("ds1", dataSource2); // 配置Order表规则 TableRuleConfiguration orderTableRuleConfig = new TableRuleConfiguration(); orderTableRuleConfig der"); orderTableRuleConfig.setActualDataNodes("ds${0..1}.t_order${0..1}"); // 配置分库 + 分表策略 orderTableRuleConfig.setDatabaseShardingStrategyConfig(new InlineShardingStrategyConfiguration("user_id"0 码力 | 12 页 | 325.38 KB | 2 年前3
SQLite Development with Zumero0 码力 | 57 页 | 199.89 KB | 2 年前3
MoonBit月兔编程语言 现代编程思想 第九课 接口
- 需要数据结构内部的数据同样实现接口 ## 表:利用接口实现 ## • 一个表是键值对的集合 对于每一个键存在一个对应值 ☐ 例:{ 0 -> "a", 5 -> "Hello", 7 -> "a" } 1. type Map[Key, Value] 2. 3. // 创建表 4. fn make[Key, Value]() Value] 7. // 获取键对应值 8. fn get[Key, Value](map: Map[Key, Value], key: Key) -> Option[Value] ## 表:利用接口实现 • 表的简易实现 ☐ 利用列表+二元组存储键值对 ☐ 添加/更新时向列表前添加键值对 ☐ 查询时从列表前开始,找到键即返回 - 简易实现需要判断存储的键值对是否为搜索的键 ☐ 键应当满足相等接口 键应当满足相等接口 1. fn get[Key: Eq, Value](map: Map[Key, Value], key: Key) -> Option[Value] ## 表:利用接口实现 ## • 我们以列表+二元组作为表 1. // 我们定义一个类型Map,其实际值为List[(Key, Value)] 2. type Map[Key, Value] List[(Key, Value)] 30 码力 | 16 页 | 346.04 KB | 2 年前3
postgresql操作手册配置保存在 postgres 库下面的名为 pg_catalog 的 schema 下的 pg_hba_file_rules 表里:库过滤器 表过滤器 主机: 10.99.1.238 数据库: pg_catalog 视图: pg_hba_file_rules 数据 查询* 表过滤器 ★ 主机: 10.99.1.238 数据库: pg_catalog 视图: pg_user 数据 查询* pg_u /td> 搜索 查询 工具 转到 帮助 数据库过滤器 表过滤器 pg-13 8.1 MiB information_schema 336 0 码力 | 17 页 | 445.84 KB | 2 年前3
03 CSS 杨亮 《PHP语⾔程序设计》important text normal text another important text ## 选择器的优先级 1. 内联样式表的权值最高 1000 2. ID 选择器的权值为 100 3. Class 类选择器的权值为 10 4. 标签选择器的权值为 1 权值越大越优先red
0 码力 | 25 页 | 2.68 MB | 2 年前3
Hello 算法 1.1.0 C++ 版统都可以建模为“图”;大到一个国家,小到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下;羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 本书旨在通过清晰易懂的动画图解和可运行的代码示例,使读者理解算法和数据结构的核心概念,并能够通过编程来实现它们。在此基础上,本书致力于揭示算法在复杂世界中的生动体现,展现算法之美。希望本书能够帮助到你! 4.3 列表 4.4 内存与缓存 * 4.5 小结 第5章 栈与队列 5.1 栈 5.2 队列 5.3 双向队列 5.4 小结 第6章 哈希表 6.1 哈希表 6.2 哈希冲突 6.3 哈希算法 6.4 小结 第7章 树 7.1 二叉树 7.2 二叉树遍历 7.3 二叉树数组表示 7.4 二叉搜索树 7.5 .. 357 15.5 小结 ..... 360 第 16 章 附录 16.1 编程环境安装 ..... 363 16.2 一起参与创作 ..... 365 16.3 术语表 ..... 367 ## 第 0 章 前言 0 码力 | 379 页 | 18.47 MB | 2 年前3
Weblate 4.14.2 用户文档2022年11月05日 1 用户文档 1.1 Weblate 基础知识 1.2 注册和用户个人资料 1.3 使用 Weblate 进行翻译工作 1.4 下载和上传译文 1.5 术语表 1.6 检查和修正 1.7 搜索 1.8 翻译工作流 1.9 常见问题 1.10 支持的文件格式 1.11 版本控制集成 1.12 Weblate 的 REST API 1.2.1 注册 默认情况下,每个人都可以浏览项目、查看翻译或建议翻译。只有注册用户才能实际保存更改,并且每次翻译都会获得积分。 您可以按照以下几个简单步骤进行注册: 1. 使用您的凭据填写注册表。 2. 使用电子邮件中收到的链接来激活注册账号。 3. 可以选择调整您的个人资料以选择您知道的语言。 #### 1.2.2 操作面板 登录后,您将看到项目和组件的概述,以及它们各自的翻译进度。 如果一条信息出现在多个地方(例如多个部件),若发现它们不一致,这个选项卡会显示所有的信息(参见不一致的)。你可以选择使用其中之一。 ## 翻译记忆库 查找过去翻译过的相似字符串,参见翻译记忆库。 ## 术语表 显示当前信息中用到的项目术语表中的术语。 ## 近期变化 显示最近通过 Weblate 更改了此信息的人员列表。 ## 项目 项目信息,如翻译人员的说明,或项目使用的版本控制系统仓库中字符串的目录或链接。0 码力 | 496 页 | 8.15 MB | 2 年前3
Hello 算法 1.2.0 繁体中文 Rust 版統都可以建模為“圖”;大到一個國家,小到一個家庭,社會的主要組織形式呈現出“樹”的特徵;冬天的衣服就像“堆疊”,最先穿上的最後才能脫下;羽毛球簡則如同“佇列”,一端放入、一端取出;字典就像一個“雜湊表”,能夠快速查找目標詞條。 本書旨在透過清晰易懂的動畫圖解與可執行的程式碼範例,使讀者理解演算法和資料結構的核心概念,並能夠透過程式設計來實現它們。在此基礎上,本書致力於揭示演算法在複雜世界中的生動 4.3 串列 4.4 記憶體與快取* 4.5 小結 第5章 堆疊與佇列 5.1 堆疊 5.2 佇列 5.3 雙向佇列 5.4 小結 第6章 雜湊表 6.1 雜湊表 6.2 雜湊衝突 6.3 雜湊演算法 6.4 小結 第7章 樹 7.1 二元樹 7.2 二元樹走訪 7.3 二元樹陣列表示 7.4 二元搜尋樹 7 15.4 最大切分乘積問題 366 15.5 小結 370 第 16 章 附錄 371 16.1 程式設計環境安裝 372 16.2 一起參與創作 375 16.3 術語表 376 ## 第 0 章 前言  ##0 码力 | 388 页 | 18.82 MB | 1 年前3共 890 条- 1
- 2
- 3
- 4
- 5
- 6
- 89













