结构体-数据表排序

简介: 结构体-数据表排序

任务描述

现代数据库的出现为人们管理各种数据提供了极大的方便,可以说,现在很少有行业背后没有数据库作为支撑。一个典型关系型数据库内部用一张张“表”存储数据,表内的数据代表着现实世界中客观实体的信息,可以说是客观实体的集合。以下是一个“表”的例子:

food num buyDate price
juice 1 2019-12-21 10.209
banana 10 2020-02-02 129.98
apple 9 2020-1-19 34.55
apple 3 2020-01-19 32.2

其中 | food | num | buyDate | price | 可以称为“表头”,里面每一列各不相同的字符串(比如food)作为列名唯一地标识每一列。表头告诉我们这张表将从哪些维度描述客观实体。 之后的每一行称为“元组”,每一个元组对应一个客观实体,每一列中内容的含义和表头所描述的应一致。例如表中的第一个元组: | juice| 1|2019-12-21|10.209|

现在的任务是,为某张表按照一定的关键字顺序排序并输出。为了简化任务,题目将表中的数据类型限制为:

INT:整型数据,同 C 语言中的 int,没有前导 0,排序时按照数字大小排序;

REAL:实数,同C语言中的 double,排序时按照数字大小排序。同时本题中实数的有效数字不会超过 8 位;

VARCHAR:字符串,仅包含大写或小写英文字母,长度不超过 100,排序时按照 C 语言中 strcmp 的规则进行比较;

DATE:日期,格式为 year-month-day,排序时按照日期先后进行排序。输入时保证日期格式一定合法,year 是一个四位数字,但是不保证 month 和 day 一定有两位数字。

按照一定的关键字顺序排序意味着当两个元组的第一关键字值相等的时候,比较第二关键字,以此类推。不会出现所有关键字对应的值都相等的情况。

相关知识

参考之前的关卡。

编程要求

根据提示,在右侧编辑器的Begin-End区域内补充代码。

测试说明

输入: 第一行,两个整数 row 和 col,分别为表的行数(除去表头)和表的列数,列数在 100 及以内,行数在 1000 及以内;

第二行,col 个用一个空格分隔的VARCHAR 类型字符串(列名),代表表头,列名之间保证各不相同;

第三行,col 个用一个空格分隔的字符串,只可能是 INTREALVARCHARDATE,代表每一列中数据的类型;接下来 row 行,每行 col 个用一个空格分隔的数据,每个数据遵循所在列的数据类型的构造规则,每一行代表一个元组。

之后若干行为关键字顺序,每行包括一个列名和一个数字,用一个空格分隔。第 i 行的列名代表第 i 关键字,跟在它后面的数字为 1 或 −1,如果是 1 则该关键字按升序排列,−1 则按降序排列。关键字之间不会重复,此部分行数不会超过列数。

输出:输出排好序的表格,第一行是表头,接下来 row 行是相应的元组。每个数据之间用一个空格分隔。请按原样输出数据。

例如测试集 1 的输入是: 5 5orderID food num buyDate priceINT VARCHAR INT DATE REAL1 apple 5 2020-1-09 34.552 banana 10 2020-01-9 129.983 juice 1 2019-12-21 10.2094 apple 3 2020-01-09 32.25 apple 2 2020-1-9 20.1buyDate 1food -1price 1 测试集 1 的运行结果为: orderID food num buyDate price 3 juice 1 2019-12-21 10.209 2 banana 10 2020-01-9 129.98 5 apple 2 2020-1-9 20.1 4 apple 3 2020-01-09 32.2 1 apple 5 2020-1-09 34.55


开始你的任务吧,祝你成功!


相关文章
|
6月前
根据二维数组中的某个字段进行排序
根据二维数组中的某个字段进行排序
29 0
|
SQL
一条集多表查询、字段与字段拼接、合并每张表共同字段、新增列并赋值的SQL
一条集多表查询、字段与字段拼接、合并每张表共同字段、新增列并赋值的SQL
66 0
|
前端开发
Bootstrap - 列排序,列偏移,列嵌套
Bootstrap - 列排序,列偏移,列嵌套
97 0
|
算法
哈希表数据结构模板
哈希表数据结构模板
105 0
合并查询结果与为表和字段取别名
合并查询结果与为表和字段取别名
176 0
合并查询结果与为表和字段取别名
|
存储 关系型数据库 MySQL
数据表的类型
数据表的类型
|
存储 Java
Class文件结构介绍[字段表集合和方法表集合]
字段表(field_info)用来描述接口或类中声明的变量,字段包括类级别变量以及实例级别变量。但不包括方法内部声明的局部变量。以如下代码来分析
Class文件结构介绍[字段表集合和方法表集合]
修改某个数据列的名字或者数据类型|学习笔记
快速学习修改某个数据列的名字或者数据类型
177 0