Re: [问题] 询问 C 程式设计的问题

楼主: Gway (我爱的你 也爱我 好吗?)   2018-08-10 16:36:48
Status Update:
原先的code是我想的字符加总拿来当index是有问题(感谢指正)
后来我的解法是:
不使用array改成使用binary tree储存每笔资料
这样做的好处是 输入完后 可以不用sort
直接binary search。
有兴趣的人可以看一下我的解法。
分享一下程式码:
https://goo.gl/kF8bJs
感谢大家的讨论,看到有人用Link-List,我才想到要用tree,
果然大家脑力激荡比较能有好解法,感谢板上的大家。
※ 引述《Gway (我爱的你 也爱我 好吗?)》之铭言:
参加了一个简单的线上30天刷题(每天一题),遇到第8天的题目写完后,
还是都只能过 基础 testcase0 其它的 testcase 1~5 全部fail...
想上来跟大家讨论一下 是否有神人可以解惑
题目网址如下:
https://goo.gl/3PG61f
程式码如下:
https://gist.github.com/ablueway/47d9b94d19e83fdfa4b3c64579b3515d
补充说明(Supplement):
我想知道用C写如何解决此题,其他语言的方法暂时不考虑,
程式码最上方配合题意定义了基础资料结构(name/number/idx),
之前使用strcmp的时候想不出来如何与quicksort做结合
所以资料结构多了idx字段,是将输入的string的每个char加总得到的值,
拿来为了后面排序使用。
针对输入内容用quick sort排序+查找时使用binary search,
但还是过不了测资.... Orz
写得有点暴力 ...请各位多多包涵
有啥好想法 大家可以讨论看看
谢谢欧
作者: b0920075 (Void)   2017-08-08 16:54:00
你可以去找找他的题目意义和相关的资料结构喔喔我没看到前面的内容,当我没说
作者: sarafciel (Cattuz)   2017-08-08 17:48:00
你怎么会觉得char value加起来可以定序呢XD
作者: bibo9901 (function(){})()   2017-08-08 17:56:00
其实stdlib.h就有qsort()和bsearch()
作者: s06i06 (三条鱼)   2017-08-08 19:05:00
他都跟你说要用hash了
作者: moebear (萌熊)   2017-08-08 19:25:00
我偷看解答 跟你作法一样的过了 直接用字串来排序strcmp()<0<=https://ideone.com/i8JMmL 我自己写的 用阵列串linklist
作者: stimim (qqaa)   2017-08-08 20:50:00
quick_sort 排完之后把东西印出来,看有没有照你想的排
作者: oToToT (屁孩)   2018-08-12 01:19:00
why not hashtable? 理论上效率会比较好吧XD
楼主: Gway (我爱的你 也爱我 好吗?)   2018-08-12 10:05:00
愿闻hash的做法 请大大明示之?可否提供hash fun的实作想法呢?hash是查找快O(1)但如果hashfun不好 很多碰撞 不也是要串在list上,最后查找也是O(n)?BST O(Lon n)会比较差吗?谢谢
作者: cphe (魔鬼藏在垃圾筒里)   2018-08-12 14:29:00
hash之后也可以再用tree串起来,这应该都是worst case才会这样,其实刷code用C真的是很麻烦,以前也刷过一阵子可考虑用c++或其他语言,基本的资料结构有支援写code很快的

Links booklink

Contact Us: admin [ a t ] ucptt.com