- 空間限制
- 時間限制
- 型態限制
空間限制
- int : 4 bytes
- double : 8 bytes
- JS 中的 Number : 8 bytes
如果今天要用到一百萬個數字
(8*1e6)/ 1024 = 7812 KB = 7.6 MB
// 1e6 => 1 後面跟著 6 個 0
如果是要用到十億個數字
(8*1e8)/ 1024 = 781200 KB = 7600 MB = 7.4 GB
// 要用到 7.4 GB 的記憶體,不是所有電腦都有那麼多記憶體
排序十萬個數字,可以全部載入到記憶體
但如果要排十億個數字呢?
不可能一次載入到記憶體,可能先把排好的一部分數字放在檔案裡,所以範圍決定解題方法
時間限制
初學先求有再求好,之後補充
型態限制
- int : -2147483648 ~ 2147483647 (-2^31 ~ 2^31-1)
- JS 數字 : Number.NAX_SAFE_INTEGER
- 浮點數精準度問題