[理工] 104成大电通 资结

楼主: sdfg014025xx (随便就好)   2019-02-23 19:03:57
https://i.imgur.com/BoXvyWT.jpg
https://i.imgur.com/lSNOKDT.jpg
请问K1和K2是什么?
我看不是很懂题目的意思QQ
作者: sooge (老衲)   2019-02-23 21:29:00
同问 看不懂 虽然前面有两篇问过了不过都没讲到重点的样子... data record的长度到底是什么
作者: AliennC   2019-02-23 22:15:00
个人浅见,母题题意是用K1, K2 作为 data 的索引,可以想像成 K 是座号而 data 是同学名字,楼上有疑问的 data长度就类似名字长度。 data 和对应的 K 是绑在一起的,排序用 K 来排,但实际上目的是要整理 data set,可以想像成我们要把一个班级的同学排成一列需要有座号的协助去对应,至于怎么排序就是子题要问的问题,另外要注意母体有声明没特别讲的话各子题的 K 是互不相关的
作者: sooge (老衲)   2019-02-23 22:37:00
那为什么4-6答案是D E和F不行吗 data长度会让E和F不好实施吗
作者: AliennC   2019-02-23 23:02:00
呃我不知道答案,纯粹分享想法你加减参考,不敢说我一定对,有错再请指教。这题 data 的数量满多的,如果一个 set 里面稍微多塞一点东西(例如 data 长一点之类)就可能会超出一个 page,这时候如果要 swap 两个不同 page 内的资料就会很耗时,因此像 quick sort 这种需要从两端去追踪的算法势必会有上面的问题。另一方面,merge sort因为不是 in-place,也就是要把整份数据库复制一份在外面才能执行,这也是很花资源的行为。heap sort 同 quicksort,heap sort 通常用 array 之类这种连续的资料结构,也就是说在调整子树中,一直往下找可能会穿越 page,而且调整子树次数也很多所以 heap sort 也不适用在大型数据库的排序
作者: sooge (老衲)   2019-02-23 23:42:00
所以照这样说的话 如果只是资料量多但data size不大的话用quick sort从两边去追纵的话很像是最适合的谢谢你 解释超详细的
作者: AliennC   2019-02-24 00:15:00
要看用途吧,例如 os 中比较要求 worst case 也就是要求稳定性的时候会倾向 merge sort,何况 quick sort 还有unstable 这个致命缺点,所以很难断定什么时候用哪个绝对比较好

Links booklink

Contact Us: admin [ a t ] ucptt.com