高速化してみた。だいたい10000行で1分@new3DS≒4分@old3DSが限界かな。
問題はPRGEDIT。
PRGEDITはカレント行を決定するけど、そのためには頭からデータを読んで行番号を数えないといけない。
行番号が小さいうちはすぐ終わるけど、後ろのほうになるとたくさん探さないとわからなくなる。
それを何回もやるから遅い。
もう少し正確に言うと、
行番号をnの行を探すのに、改行記号をn個探さないといけないからだいたい「nに比例した時間」がかかる。
1行目を処理して、2行目を処理して、…ってn行目まで処理すると、合計だからn*(n-1)/2、つまりn^2に比例した時間がかかる。
nが10なら100くらいだけど、nが10000なら100000000の時間がかかるわけ。
そこを直さないといけない。
2そうだね プレイ済み