[闲聊] dsa hw2 华语

楼主: ryuchenchang (陈仓)   2013-03-07 23:43:01
不要作弊!(上一份翻过了,请详读)
作业200 分,另外加上10分加分题。
2.1 更多C++
(1) 下列函数会找到一个阵列中的最大元素和最小元素。
这个函数需要这要呼叫:
请把它改写成可以这样呼叫的形式:
(提示: reference!)
(2) 下面的函数sum1可能会跑一跑当掉,请说明原因。sum2不会跑一跑当掉,但是它会有
别的问题,请说明他的问题。
2.2 更多阵列
(1) 完成课本上C-3.3练习题。(越快越好喔)
(2) 完成课本上C-3.4练习题。(越快越好喔)
(3) 一个大小为N的帕斯卡三角形包含了所有C n取k(0<=k<=n<=N)的数值。请说明你要如
何用一个一为阵列来储存这一个三角形的资料。你必须说明他们内存上分布的情况以及
取出任一C n取k的数值的方法。
(4) 承上题,你有没办法利用”C n取 k== C n取 n-k”这点想到另外一个方法可以只用
一半的内存储存这一个三角形的方法? 你仍必须说明他们内存上分布的情况以及取出
任一C n取k的数值的方法。
2.3 多维阵列处理
你现在被要求要设计并实作一个资料结构来储存来自2011 KDDCup Track1的一个很大的
资料组。KDDCup是一个国际Data Mining的比赛,而我们亲爱的NTU队伍赢得了当年的双料
冠军。这个档案总共有252800275行。
在二一七linux 1~14都有。档案格式为:
这个资料组来自Yahoo! 音乐 评价系统。每行代表使用者(User ID)在何日(Date)何时
(Time)给予一首歌(ItemID)的分数(Rating)。 你可以将档案视为一个超大的4D阵列
M[UserID][ItemId][Date][Time]=rating。
你的设计必须包含下列功能:
. 取得: 给予使用者、音乐名称、时间、日期时输出分数。
. 项目: 逐行输出u1,u2都给过评分的音乐名称。
. 使用者: 按照(号吗?)顺序逐行输出在[(d1,t1),(d2,t2)]这段时间内给过i1,i2评价的
使用者。
. 社团: 按照顺序逐行输出给予资料组Is中的音乐r1~r2分的使用者。
TA会提供要求的输入输出格式,你必须按照这些格式让TA可以用他们的输入、输出档案测
试你的程式。在下列问题中,你可以用标准函式库中的任何功能。
这个作业的目的是要帮助你了解为庞大的资料设计资料结构是一件不容易的事。我们了解
你现在还不会很多招。所以请你尽力想出任何东西。我们鼓励你发挥创意。
(1) 形容你设计的资料结构。把重点摆在你为什么觉得你设计的资料结构在处理以上五个
命令时(在时间方面)是很有效率的。
(2) 请计算把这些资料读进你的资料结构需要花多少时间(越快越好)。
(3) 请计算你的资料结构实际占据的内存大小。(越小越好)
(4) 请实作你设计的资料结构(包含输入输出界面),并能执行上述的五个命令。并简略说
明你如何测试你得实作是否正确。再来,写一个Makefile来编译你的code。TA会用make来
编译你得程式,并用make run 在217工作站执行。
请按照以下格式上传你的code。不能在217工作站上编译执行的的程式都会算0分。
上传学号.zip,包含你的实作 .h .cpp,Makefile,还有选择性的README(给助教看的一
封小信)。
手写部分,请印出来,并在课堂上缴交,或是交到217。
金牌使用方法:在手写的作业封面上写你要用几面。ex. use 2 metals。
传说一次用三面金牌可以召唤岳大将军,用四面金牌可以召唤田神。但洽p详细功能不甜n楚﹜d
作者: buefox (foxyrex)   2013-03-08 12:01:00
推小光认真
作者: BoyoChen (BoyoChen)   2013-03-18 00:14:00
推卷哥

Links booklink

Contact Us: admin [ a t ] ucptt.com