- プログラミングのお題スレ Part3
480 :デフォルトの名無しさん[sage]:2014/04/13(日) 10:36:42.95 ID:SWiQOeUP - >>478
>ちぐはぐな長さのジャグ配列 そもそも元データは行列なんですがそれは
|
- プログラミングのお題スレ Part3
483 :デフォルトの名無しさん[sage]:2014/04/13(日) 19:23:09.05 ID:SWiQOeUP - >>482
どう書いてもO(n)は免れないのでなるべく単純に…… http://codepad.org/l5urRBhK
|
- プログラミングのお題スレ Part3
485 :デフォルトの名無しさん[sage]:2014/04/13(日) 19:38:12.17 ID:SWiQOeUP - >>484
HSPなら、(長い文字列の場合)ループ回すよりそのまま置換した方が速くね? ;準備 StringBuffer = "aabaabbab" sdim Char, 1, 2 dim Count, 2 ;1種類目の文字を抽出 Char(0) = strmid(StringBuffer, 0, 1) ;strrep+strlenで各個数を数える StringBuffer_ = StringBuffer strrep StringBuffer_, Char(0), "" Count(1) = strlen(StringBuffer_) Count(0) = strlen(StringBuffer) - Count(1) ;2種類目の文字を検出して表示 Char(1) = strmid(StringBuffer_, 0, 1) if(Count(0) > Count(1)){ mes StringBuffer + "->" + Char(0) }else{ mes StringBuffer + "->" + Char(1) } stop
|
- プログラミングのお題スレ Part3
486 :デフォルトの名無しさん[sage]:2014/04/13(日) 19:49:37.78 ID:SWiQOeUP - 軽くベンチした結果、10000000バイトの文字列相手で、
>>484が6.634秒に対し>>485が0.391秒となった。 基本的にHSPは遅いので、命令を上手く使う方向で書いた方が速いです。
|
- プログラミングのお題スレ Part3
494 :デフォルトの名無しさん[sage]:2014/04/13(日) 20:38:11.97 ID:SWiQOeUP - >>488
その発想はあったわ……修正っと http://codepad.org/oZiVUUFQ >>489 よく見るんだぜ、内側ループはちゃんと終了後に抜けるからO(n)なんだぜ 俺だって2種類だと信じての実装なんだぜ >>491 どこがだ、ソートはO(n log n)だろと
|
- プログラミングのお題スレ Part3
499 :デフォルトの名無しさん[sage]:2014/04/13(日) 21:23:43.24 ID:SWiQOeUP - >>497
ま、記述量削った方が楽でいいわな…… スクリプト言語なんて特に、記述時間+実行時間の 合計を短縮する方向性で作られているものだし
|