[問題] 最省記憶體的方法印1到100, 忽略特定數值

看板C_and_CPP作者 (jocobo)時間12年前 (2013/05/06 14:29), 編輯推噓6(7133)
留言41則, 12人參與, 最新討論串1/1
請問如果要印出1到100,但矩陣有的值不可印出.. 要求用最小記憶體與CPU使用率...目前知道大概會用到 指標..malloc/free 函數...但要怎寫呢?可請教大家嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 106.1.125.56

05/06 14:37, , 1F
1-100 <- 這是什麼? 有沒有印出來的結果可以參考
05/06 14:37, 1F

05/06 14:42, , 2F
1到100
05/06 14:42, 2F

05/06 14:42, , 3F
java和C++版兩位版主對作業文的容忍程度差真多XD
05/06 14:42, 3F

05/06 14:43, , 4F
不過共通點都是很熱心的回答問題...
05/06 14:43, 4F

05/06 14:43, , 5F
假設矩陣[ 2,50,64,30,45]不能印出矩陣內的值,並要求使用
05/06 14:43, 5F

05/06 14:44, , 6F
最小記憶體
05/06 14:44, 6F

05/06 15:18, , 7F
是分別給一種做法嗎?
05/06 15:18, 7F

05/06 15:20, , 8F
是的,感謝
05/06 15:20, 8F

05/06 15:39, , 9F
這個"最小"是怎麼評估的阿... 還有你自己有沒有覺得不
05/06 15:39, 9F

05/06 15:40, , 10F
滿意但是自己寫得出來的實作品?
05/06 15:40, 10F

05/06 16:07, , 11F
最小只是個比較而已,指大概知道用指標寫,尚無作品,抱歉
05/06 16:07, 11F

05/06 16:36, , 12F
不知是否可幫一下.謝謝..
05/06 16:36, 12F

05/06 16:40, , 13F
你這個矩陣是... 寫死在程式碼裡的嗎?
05/06 16:40, 13F

05/06 16:41, , 14F
完全看不懂在講什麼
05/06 16:41, 14F

05/06 16:42, , 15F
本文莫名其妙,後面說明越說越迷糊
05/06 16:42, 15F

05/06 16:43, , 16F
人不理解的問題不能寫成程式 你若希望別人幫你寫 起碼要
05/06 16:43, 16F

05/06 16:43, , 17F
講清楚要幹嘛
05/06 16:43, 17F

05/06 16:43, , 18F
題意應該是: 從印出1到100, 但陣列中已有的數值忽略
05/06 16:43, 18F

05/06 16:44, , 19F
*從 1 印到 100
05/06 16:44, 19F

05/06 16:44, , 20F
版主太厲害了
05/06 16:44, 20F

05/06 16:46, , 21F
囧rz 慘了在同一個 channel 上
05/06 16:46, 21F

05/06 16:47, , 22F
如果沒有屍體的話... 那就是一般的伸手文囉
05/06 16:47, 22F

05/06 17:03, , 23F
由此篇可見~板主是大好人~
05/06 17:03, 23F

05/06 17:47, , 24F
了解了,抱歉各位
05/06 17:47, 24F

05/06 18:14, , 25F
你到底在說麼= =
05/06 18:14, 25F

05/06 18:28, , 26F
謝謝版大的補充,抱歉我沒有講清楚
05/06 18:28, 26F

05/06 18:38, , 27F
這最低也要O(n)啊,還是這樣也不能滿意?
05/06 18:38, 27F

05/06 19:38, , 28F
好像在哪有看過類似的題目,那個陣列內先排序可加速
05/06 19:38, 28F

05/06 19:55, , 29F
排序也要花時間啊
05/06 19:55, 29F

05/06 19:59, , 30F
考慮到最省記憶體 排序最快也需要n log n
05/06 19:59, 30F

05/06 19:59, , 31F
怎樣也比 掃過一次 O(N) 大
05/06 19:59, 31F

05/06 20:28, , 32F
你要印1~100的數值跟陣列內不重複,不就每次要跟陣列
05/06 20:28, 32F

05/06 20:29, , 33F
內來比較? 與其每個都比較,不如排過可以省一些
05/06 20:29, 33F

05/06 20:32, , 34F
要不重複印,就是跟陣列內數值比較,每個數比5次,這
05/06 20:32, 34F

05/06 20:33, , 35F
樣要比較100*5次,如果你排序好了,你只要每次都跟還
05/06 20:33, 35F

05/06 20:34, , 36F
沒比的最小值比一次就好,這樣才比較快
05/06 20:34, 36F

05/06 21:59, , 37F
這題排序可以用count sort只要O(n)
05/06 21:59, 37F

05/07 01:25, , 38F
基本上 counting sort 應該就是快但不省記憶體的方法
05/07 01:25, 38F

05/07 01:28, , 39F
不用執行就印得出來了, 但是應該沒多少人看得懂
05/07 01:28, 39F

05/07 02:37, , 40F
板主大大要寫一個 metaprogramming 版本嗎!!!! (跪
05/07 02:37, 40F

05/22 12:50, , 41F
\(meta)/ \(meta)/ \(meta)/ \(meta)/ \(meta)/
05/22 12:50, 41F
文章代碼(AID): #1HXqstJ5 (C_and_CPP)