→ carylorrk: 不超過 1000 的正整數,radix sort 最適合 01/09 03:03
→ carylorrk: 但是要解決問題你要先說你的爆掉是什麼意思 01/09 03:06
→ carylorrk: 如果是記憶體塞不下又沒範圍,就用 external merge 01/09 03:08
→ kevin77884: compile時出現"xxx已經停止運作" 感覺是記憶體不夠... 01/09 03:18
→ kevin77884: 那external merge sort的code要怎麼寫呢? 01/09 03:19
→ bigpigbigpig: 不超過 1000 ... 把它想成大量數據,方向就錯誤了。 01/09 05:46
→ bigpigbigpig: 查一下 Programming Pearls 的第一章(Jon Benteley) 01/09 05:47
推 springman: 我感覺未必是記憶體不夠,您有先用幾百筆的資料測過 01/09 06:38
→ springman: 您的程式嗎?如果資料少時正確,資料大時錯誤的話 01/09 06:39
→ springman: 才可能是記憶體的緣故。那也測一下多大才會死掉。 01/09 06:39
→ carylorrk: 算一百萬筆,用 int64 存也不會爆。除非存在 stack。 01/09 07:02
→ carylorrk: compile 的時候就出現難不成是 compiler 有 bug XD (誤 01/09 07:02
→ carylorrk: 重點是你根本不知道錯在哪,然後開始修一個不存在的bug 01/09 07:03
→ carylorrk: 前面說錯,用 counting sort 纔對。不用讀入所有資料, 01/09 07:08
→ carylorrk: 就能做,而且快。只需要 int[1001] 的空間。 01/09 07:09
→ carylorrk: 然後 external merge sort code google 隨便都有... 01/09 07:10
→ carylorrk: 總之,我覺得要不是你別的地方錯,不然就是存在 stack 01/09 07:11
→ carylorrk: 先檢查完,再來做 counting sort 或 external sort 01/09 07:12
→ MOONRAKER: 神奇海螺說:有BUG 01/09 10:28
→ TobyH4cker: 真的是compiler在compile時compiler停止運作嗎? 01/09 12:36
→ TobyH4cker: 還是你只是按到「編譯並執行」?compiler問題跟程式 01/09 12:38
→ TobyH4cker: 問題是不一樣的 01/09 12:38
→ CaptainH: 未看先猜int arr[n] 01/09 14:52
推 andy410061: 演算法的話理論上都可以吧 只是效率的問題 01/11 11:19
→ andy410061: 會爆掉的話 還是要看是什麼東西爆掉才能做判斷 01/11 11:20
推 Killercat: 幾十萬筆稱不上大資料吧... qsort都還ok 01/11 13:16
→ longlongint: stack overflow? 01/14 13:01
→ longlongint: 試試看全域變數? 01/14 13:02