Re: [問題] 有另外的資料結構來代表大型的多維陣列嗎?

看板java作者 (骨頭)時間19年前 (2007/02/01 20:08), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/11 (看更多)
※ 引述《PsMonkey (痞子軍團團長)》之銘言: : ※ 引述《chiachenyen (阿成)》之銘言: : : 近來需要寫一支程式,有一個小困擾~ : : 程式需要計算數十維度的資料,若宣告成: : : int record[][][][][][][][][][]=new int[25][25][25][25][25][25][25][25][25][25]; : : 顯然得,不可行~ : : 這麼大的多維陣列,其實也可能只有100個elements會用到(或是更少), : : 但因為這些elements都會分散在這個多維陣列之中,我有考慮過用vector來作, : : 也就是說,用"編號"的方式來作,這麼一來,如果只需100個elements, : : 也就真正的只需100個~ : : 如了這個外,不曉得各位先進還有其他建議的方法嗎~? : 麻煩請 post 成 BBS 方便看 & 方便引言的文章格式 : 只宣告一個一維陣列 : 然後寫個 method 接參數,就可以取出你要的 : 這道理其實很簡單,假設一個二維 3*4 的矩陣 : 0 1 2 : 3 4 5 = 0 1 2 3 4 5 6 7 8 9 10 11 : 6 7 8 : 9 10 11 : 你要取第三行第二個(就是 [2][1])7 : 其實就是一維陣列的 [2*3+1] : 其他,就是麻煩而已,不難 痞子你好壞。XD 以他的例子來看,假設只是三維各長25的陣列, 你這個一維陣列長度也要15625之多。XD 他的問題比較接近稀疏矩陣,屬於範圍大但是資料少的問題。 (十幾維度的資料,卻只有一百筆這樣。) 底下是良葛格對稀疏矩陣的介紹 覺得可以值得參考 http://caterpillar.onlyfun.net/Gossip/AlgorithmGossip/SparseMatrix.htm 如果以原PO的想法來看,hash也是個不錯的選擇, 個人覺得痞子提的方式是個不錯的hash法,因為不會重複。 只是我會比較想用 Map<String,Integet> 做,而不會想用一維陣列。(逃) -- String temp="relax"; | Life just like programing while(buringlife) String.forgot(temp); | to be right or wrong while(sleeping) brain.setMemoryOut(); | need not to say stack.push(life.running); | the complier will stack.push(scouting.buck()); | answer your life stack.push(bowling.practice()); | Bone everything -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.27.68

02/01 20:15, , 1F
討厭~死相~ 說人家好壞 >////<
02/01 20:15, 1F
文章代碼(AID): #15mTWebn (java)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 11 篇):
文章代碼(AID): #15mTWebn (java)