Re: [問題] 提昇搜尋的效率

看板java作者 (痞子軍團團長)時間11年前 (2013/06/18 13:36), 編輯推噓1(107)
留言8則, 6人參與, 最新討論串3/6 (看更多)
※ 引述《sudada (嘰咕嘰咕嘰咕)》之銘言: : 各位好 : 最近遇到一個sorting的問題 : 假設我有一個List裡面放我自訂的class 我假設你說的是 java.util.List : 他必須是個排序好的狀態 : 但是每次有新增或更新資料 我都必須取得那筆資料的index : 而且使用上get range的使用機率應該會比insert高一點 ^^^^^^^^^^ 看不懂 @_@ : 目前我有兩種想法 : 第一 : 每次丟資料進去都call一次sort : 不過這樣沒辦法直接知道我剛剛新增的那筆資料 : 到底會被丟到哪裡去 : 所以sort完以後還要再抓一次index? : 這種方法我覺得完全不可行...... 為什麼完全不可行? sort 完之後的 search 不會多花時間阿? 或著說,如果真的很花時間 那你應該先擔心記憶體爆掉吧? : 第二 : 跑迴圈用自己的compare方式找到適當的位置 : 直接call insert : 這樣"感覺上"快很多 : 但是問題出在用List的資料結構的話 : 每次都必須從頭開始 cost應該是O(n)? : 如果要改進這裡勢必要改資料結構 : 用binary tree又怕會影響整體get的效能 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 這個「害怕」的來源我也不是很懂 但是你不解事,那我們要如何替你(鍵盤)取捨? 整個需求(在我腦補之後)看起來用 tree 很合理阿? : 想請問大家會怎麼取捨 : 謝謝 演算法我不是很懂(招換某 t) 我只知道「骯髒事不滅法則」 也就是說,該做的事情就是那些 用了快樂的演算法可能會快一點,但是還是得作那些事情 另外,你可能得把你的需求說得更明確一點 光憑這些... 我覺得我看不太懂,也沒辦法開始算命 [死] ==== 我先承認我是來混文章數的 [逃] -- 錢鍾書: 說出來的話 http://www.psmonkey.org 比不上不說出來的話 Java 版 cookcomic 版 只影射著說不出來的話 and more...... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.34.226.85

06/18 13:37, , 1F
輸兩秒.... 我以為這篇會沒人回的說
06/18 13:37, 1F

06/18 13:38, , 2F
早知道你會回我就不寫了 [淚目]
06/18 13:38, 2F

06/18 13:38, , 3F
為何這篇會有 S ?
06/18 13:38, 3F

06/18 13:39, , 4F
因為版主也覺得這是來混文章數的 [蓋章][逃]
06/18 13:39, 4F

06/18 16:53, , 5F
sort就N log N太慢吧 每次都要重新sort
06/18 16:53, 5F

06/21 19:10, , 6F
S 跟 ! 有什麼區別呀?
06/21 19:10, 6F

06/21 23:12, , 7F
一個是警告 一個是鎖文吧
06/21 23:12, 7F

06/21 23:12, , 8F
一個是 s、一個是 sm [嬌羞]
06/21 23:12, 8F
文章代碼(AID): #1Hl_7TzJ (java)
文章代碼(AID): #1Hl_7TzJ (java)