MoonBit月兔编程语言 现代编程思想 第十课 哈希表与闭包
现代编程思想 哈希表与闭包 Hongbo Zhang 1 回顾 表 键值对的集合,其中键不重复 简单实现:⼆元组列表 添加时向队⾸添加 查询时从队⾸遍历 树实现:⼆叉平衡树 基于第五节课介绍的⼆叉平衡树,每个节点的数据为键值对 对树操作时⽐较第⼀个参数 2 哈希表 哈希函数/散列函数 Hash function 将任意⻓度的数据映射到某⼀固定⻓度的数据 在⽉兔的 Hash Hash 接⼝中,数据被映射到整数范围内 trait Hash { hash(Self) -> Int } "这是⼀个⾮常⾮常⻓的字符串".hash() == -900478401 哈希表 利⽤哈希函数,将数据映射到数组索引中,进⾏快速的添加、查询、修改 1. // 对于 a: Array[(Key, Value)], key: Key, value: Value 2. let index 解决哈希表的冲突 直接寻址(分离链接):同⼀索引下⽤另⼀数据结构存储 列表 ⼆叉平衡搜索树等 开放寻址 线性探查:当发现冲突后,索引递增,直到查找空位放⼊ ⼆次探查(索引递增 )等 4 哈希表:直接寻址 当发⽣哈希/索引冲突时,将相同索引的数据装进⼀个数据结构中 例:添加0、5(哈希值分别为0、5)⾄⻓度为5的数组中时: 0 5 5 哈希表:直接寻址 哈希表结构 10 码力 | 27 页 | 448.83 KB | 1 年前3JAVA 应用与开发 - 集合与映射
JAVA 应用与开发 集合与映射 让我们愉快的 Coding 起来吧... ��� �������������� November 4, 2019 ���� �����List����Set�����Map�的������� ���������� ������iterator��Enumeration ��������� API ������的������������ 1 28 ArrayListEnSureCapacitySample.java 10 28 Vector � java.util.Vector ���� List ������的������的�� ��� O 与 ArrayList 的差别 Vector 是同步(线程安全)的,运行效率要低一些,主要用在在多 线程环境中,而 ArrayList 是不同步的,适合在单线程环境中使用。 �������� List 1008 Name: Alice Age:25 21 28 Comparable �� O 对上述程序的几点说明 1. 用户在重写 compareTo() 方法以定制比较逻辑时,需要确保其 与等价性判断方法 equals() 保持一致,即确保条件 “(x.compareTo(y) == 0) == (x.equals(y))”永远成立,否则逻 辑上不合理。所以上例同时重写了 equals()0 码力 | 66 页 | 713.79 KB | 1 年前3TiDB 原理与实战
TiDB 原理与实战 lixia@pingcap.com @紫沐夏_go About me ● 程序媛,TiDB committer, Go 语言狂热粉 ○ 主要研究方向为分布式系统, 坚信分布式系统才是未来 ● 目前在 PingCAP 就职 ○ 15 年中旬加入 PingCAP ○ 主要参与模块为 TiDB 的 online DDL,SQL 优化器,各种必要的功能改 进以及性能提升 ● 过来时几乎没迁移成本。 ○ 目前还有少量函数或功能未 实现 Plan optimization 逻辑优化 ● 主要依据关系代数的等价交 换做一些逻辑变换 物理优化 ● 主要依据数据读取、表连接方式、表连接顺序、排序等技术对查询进行优化。 TP Parse Logical Plan Physical Plan Exec Stat CBO RBO Plan optimization Logical join ● 小表放到内存,等值 key 建立哈希表 ● 大表是用 goroutine 分批取值,匹配哈希表 ● 之后会支持 merge sort join 等常用算法 small table big table build hash table join worker join worker join worker hash table output Online DDL 现状,锁表(有些数据支持读操作,但是也以消耗大量内存为代价)0 码力 | 23 页 | 496.41 KB | 5 月前3深度学习与PyTorch入门实战 - 08. 索引与切片
索引与切片 主讲人:龙良曲 Indexing ▪ dim 0 first select first/last N select by steps select by specific index … select by mask ▪ .masked_select() select by flatten index 下一课时 Tensor变换 Thank You.0 码力 | 10 页 | 883.44 KB | 1 年前3Java 应用与开发 - Java 语言基础与流程控制
大纲 数据类型 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入 语句 分支结构 循环结构 Java 应用与开发 Java 语言基础与流程控制 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 August 28, 2018 大纲 数据类型 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入 语句 分支结构 循环结构 参考书目 1. 陈国君等编著 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入 语句 分支结构 循环结构 学习目标 ▶ Java 语言基础 1. 数据类型 2. 常量和变量 3. 关键字与标识符 4. 运算符与表达式 5. 从键盘输入数据 ▶ 流程控制 1. 语句和复合语句 2. 分支结构(选择结构) 3. 循环结构 4. 跳转语句 大纲 数据类型 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入 语句 分支结构 循环结构 大纲 数据类型 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入 语句 分支结构 循环结构 ���� 数据类型 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入 语句 分支结构 循环结构 大纲 数据类型 常量和变量 关键字与标识符 运算符与表达式 从键盘获得输入0 码力 | 37 页 | 685.82 KB | 1 年前3Java 应用与开发 - Java 内存模型与分配机制
大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 Java 应用与开发 Java 内存模型与分配机制 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 September 30, 2018 大纲 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 学习目标 1. 理解 JVM 内存模型,掌握 JVM 内存构成 2 Java 内存模型 Java 程序内存运行分析 Java 内存管理建议 Java 虚拟机(Java Virtual Machine, JVM) ▶ Java 程序运行在 JVM 上,JVM 是程序与操作系统之间的桥梁。 ▶ JVM 实现了 Java 的平台无关性。 ▶ JVM 是内存分配的前提。 类装载子系统 Class文件 Class文件 Class文件 方法区 Java堆 Java栈0 码力 | 44 页 | 818.30 KB | 1 年前3深度学习与PyTorch入门实战 - 34. 动量与lr衰减
动量与学习率衰减 主讲人:龙良曲 Tricks ▪ momentum ▪ learning rate decay Momentum https://distill.pub/2017/momentum/ No momentum With appr. momentum momentum Learning rate tunning Learning rate decay Scheme0 码力 | 14 页 | 816.20 KB | 1 年前3Greenplum上云与优化
张广舟(明虚) 阿里云高级专家 Greenplum上云与优化 — ApsaraDB for Greenplum介绍 2016Postgres中国用户大会 目 录 content ApsaraDB for GP的定位 ApsaraDB for GP的内核优化 未来的规划 2016Postgres中国用户大会 ApsaraDB for GP的定位 2016Postgres中国用户大会 2016Postgres中国用户大会 GP vs. RDS? Select count(*) from customer where status = valid group by city 列存与压缩原理举例 ….. ….. Name Id status city 列存块 ….. 列存块 列存 ≈索引 + index only 2016Postgres中国用户大会 GP vs Redshift? “有史以来卖的最好的云服务” 对比项目 ApsaraDB for Greenplum(SSD/SATA) AWS RedShift 外部表 支持OSS外部表 无此设计 地理信息支持 支持(自带PostGIS) 不支持 分区表支持 支持 不支持 数据类型 支持所有PostgreSQL 9.0以下类型 支持11个PostgreSQL类型 横向扩容 支持 支持,需要停机(数分钟)0 码力 | 26 页 | 1.13 MB | 1 年前3Vue 2017 现状与展望
Vue 2017 现状与展望 尤雨溪 @VueConf Beijing 2017.05.20 起源 Origination First commit 2013.06.27 First appearance of “Vue” 2013.12.07 First public release (0.8) 2014.02.01 2014.11.06 v0.11 Cowboy Bebop Vue.set 或者 this.$set ○ Lazy observation ○ 显式构建响应式对象 ● HTML Modules: 类似单文件组件的新标准(由 Google 起草中) ● 与 Web Components 的兼容0 码力 | 36 页 | 2.00 MB | 1 年前3Rust与算法 - 谢波
第三届中国 Rust 开发者大会 Rust 与 算法 谢波 …………………………………………………………………………. …………………………………………………………………………… ...... …………………………………………………………………………… ……………… …………………………………………………………………………… ………………………. …………………………………………………………………………… 算法相关知识 • Rust 实现数据结构 • Rust 实现算法 • 总结及学习资源 背景介绍 • 个人信息 • 写作动机 • 可参考点 • 为什么 背景介绍 # 个人职业 # 与 Rust 结缘 # 前 GPT 时代作品 个人信息 结算及大数据系统研发工程师 疫情下的明智选择 / 个人项目实践 学习中总结探索 2015 年发布,很多人近几年才知道 Rust , Rust 公号:觉学社、 Rust 编程指北 # 书籍 《编程之道》、《 Rust 权威指南》、《 Rust 实战》、《深入浅出 Rust 》、 《 Rust 死灵书》、《 Rust 异步编程》、 《数据结构与算法( Rust 语言描述)》 # 在线教程 Rust Course 、 PingCap Talent Plan 、 Rust LeetCode 、令狐壹冲 (B 站 ) # 开源项目 Rust0 码力 | 28 页 | 3.52 MB | 1 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100