トップページ > プログラム > 2014年04月13日 > SWiQOeUP

書き込み順位&時間帯一覧

5 位/172 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000100000000311006



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
プログラミングのお題スレ Part3

書き込みレス一覧

プログラミングのお題スレ 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
ま、記述量削った方が楽でいいわな……
スクリプト言語なんて特に、記述時間+実行時間の
合計を短縮する方向性で作られているものだし


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。