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