图书 •
828 引用 •
203 回帖 •
3 关注
博客
关注
-
[链接] [链接]1.4 哈希索引 哈希索引可以理解为序号定位的延伸。 使用某个函数将被查找键值计算成一个 1…M 之间的自然数,称为该记录的哈希值,此函数称为哈希函数。将序表 T 的记录按哈 ..
-
[链接] [链接]1.3 位置索引 有时候我们希望查找出目标值在序表中的位置,而不是目标值本身。如果序表对被查找键无序时,就无法使用二分法来提高性能了。事先把数据按被查找键排序后可以使用二分法 ..
-
[链接] [链接]1.2 序号定位 有时被查找键的取值正好是目标值在序表中的序号(即位置),或者很容易通过查找值计算出目标值的序号,这时可以使用序号定位方法。 A 1 =10000.new(~ ..
-
[链接] [链接]1.1 二分法 内存中的序表 T 有字段 K,给定查找值k,找出 T 中字段 K 取值为 k 的记录,字段 K 称为被查找键,找到的记录称为目标值或目标记录。 常规的顺序查找 ..
-
[链接]后记 本书用 12 章的篇幅从零基础开始介绍了程序设计的基本概念和逻辑,以及最常用到的结构化数据及其运算,包括大数据处理方法和统计图绘制。这些内容涵盖了常规程序设计的方方面面,用于应对 ..
-
12.4 图例 我们一直没有解释这些柱子和点的颜色是怎么来的。而且成品图中有图例,而自己画的还没有,这东西该怎么画出来? 引入逻辑轴可以实现从业务数据到物理位置的映射,我们可以在 (East, ..
-
12.3 更多坐标系 第一节中我们还看到过饼图,但要在坐标系描述清这些圆和扇形的位置似乎太麻烦了。这是怎么画出来的? 除了直角坐标系,SPL 还提供了极坐标系。 极坐标系也需要两个轴(平面图形 ..
-
12.2 坐标系 要画图,就要先建立坐标系的概念。我们在中学都学过一点平面解析几何和直角坐标系的知识,知道平面上的点就都可以用坐标来表示。计算机绘图也是这样,通常会使用直角坐标系来确定位置。 ..
-
12.1 画布与图元 程序语言不仅能帮我们做数据处理,还能画图。 先看个简单例子 A B 1 [10,20,40,30,50] [East,North,West,South,Center] 2 ..
-
11.1 大游标 我们还不会做大数据的排序。 排序运算很不一样,它的计算结果和源数据一样大,如果源数据在内存中装不下,结果必然也装不下,但它又不像 select、new 这些,可以一边遍历一边 ..
-
11.3 有序游标 我们来看游标上的 group 函数。 前面说过,对于游标,我们不能把 group 后的分组子集都保持在内存中继续计算,而放在外存中又会非常麻烦并严重影响性能,经常得不偿失。 ..
-
[链接]11.2 游标上的函数 仅是数数量,SPL 还有个 skip 函数。 A 1 =file('data.txt').cursor@t() 2 =A1.skip() skip 本意是跳过若 ..
-
[链接]11.1 大数据和游标 我们这一章来讲如何处理大数据。 所谓大数据,在这里是指内存中装不下的数据,一般会在文件形式存放在硬盘上,或者存在数据库中(也是硬盘里),本书不涉及数据库,只讲述 ..
-
10.4 连接 接着上面这个订单例子,我们希望把两份文件中订单号相同但内容不同的记录挑出来之后。将字段(订单号除外)都拼到一起对照着看。也就是要想形成一个两倍字段数(除订单号)的数据表。 我们 ..
-
[链接]10.3 归并 假如有两个 Excel 文件,比如前面说的订单表,可能由两个人分别制作,其中就可能会有些重复的记录,我们需要把这些重复记录挑出来,然后合并成一个没有重复记录的表。 本来 ..
-
10.2 外键 有了主键,也就能够唯一标识一条记录了。然后,我们就能建立不同数据表的记录之间的关联了。 先生成两个有主键的表用来做实验,简单起见用整数做主键,但被故意打乱了次序。 A B C ..
-
10.1 主键 在讲结构化数据概念时,我们说过数据表的字段有名字,但记录却没有名字。那么我们用什么办法来标识一条记录和另一条记录的不同呢?我们知道,每条记录都对应着某个事物的信息,到底是哪个呢 ..
-
9.4 扩展和转置 分组后再汇总,通常会得到一个比原集合更小的集合,相当于做了聚合。那么,有没有分组的逆运算,用一个较小的数据表通过某种规则计算出一个更大的数据表呢? 我们把这类运算称为扩展或 ..
-
9.3 有序分组 我们说过,排列、序列这些集合都是有序的,经常会有成员的位置信息参与到计算中。分组也不例外,分组键也有可能是和成员序号相关的。 比如,我们想把人员表每 3 个分成一组: A 1 ..
-
[链接]9.2 枚举与对齐 将分组键相等的成员分到一个组,这种分组称为等值分组。等值分组满足这样两个特点: 1) 原集合的所有成员都在且只在唯一的组中; 2) 没有一个组是空集; 满足这种特点 ..
-
9.1 分组与汇总 当事物比较多的时候,人们会习惯将这些事物按属性分成若干类别,然后考察每个类别的一些汇总信息,这个操作表现在结构化数据上就叫分组。分组的具体动作为:把一个数据表中的记录按某个 ..
-
8.5 字段上的计算 我们前面说过,结构化数据在行和列方向的能力是不对称的,方便的批量运算通常只对行方向提供,而列总是以独立的个体出现。但我们在个别时候也需要对列方向也进行一些整体运算,也就是 ..
-
[链接]8.3 序表生成 为了进一步学习排列上的运算,我们需要一个记录数多一点的序表,比如前面用过的四个字段的序表:name、sex、weight、height,能产生上百条记录再来做实验就方 ..
-
8.2 序表与排列 有了结构化数据的基本概念后,我们来学习如何处理这种数据,也就是在前言中说的本书的后半部分内容。 用于处理结构化数据的程序语言中,当前应用最广的是 SQL。SQL 全称是 S ..
-
8.1 结构化数据 从这一章起,我们开始学习在日常工作中天天都要打交道的表格数据及其处理手段。 在前面合并 Excel 文件的例子中,其实我们已经见识过这种表格了: [图片] 第一行是标题,解 ..