トップページ > プログラム > 2014年11月24日 > zIecUg3E

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

42 位/256 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000003000000003



使用した名前一覧書き込んだスレッド一覧
393
ふらっと C#,C♯,C#(初心者用) Part113

書き込みレス一覧

ふらっと C#,C♯,C#(初心者用) Part113
532 :393[sage]:2014/11/24(月) 15:11:18.25 ID:zIecUg3E
「アルゴリズムとデータ構造」受けてきたので報告。

先生の解説の要約。
番兵でやると早くなる。
配列の要素数を1つ増やし、一番最後に'a'を入れる。
"最後で'a'が見つかったら入っていなかった"
"そうでなければ入っていた"
ということになる。
---------------------------
'a'はあくまでも小文字の例として挙げてるだけだと思うんですけど、
解説出ささっと書いていたコードには
if(x[i]=='a')という'a'かどうかというコードが書かれていました。
ふらっと C#,C♯,C#(初心者用) Part113
533 :393[sage]:2014/11/24(月) 15:12:06.17 ID:zIecUg3E
先生が提示したアルゴリズムによる時間比較
for=100%
while番兵=64.19%
pointerWhile番兵=58.32%
HalfFor=68.98%
PointerHalfWhile番兵=40.17%
oddEvenPointerBit番兵=30.26%
eightPointerBit番兵=16.28%
longPointerBit番兵=10.79%
ふらっと C#,C♯,C#(初心者用) Part113
534 :393[sage]:2014/11/24(月) 15:12:42.07 ID:zIecUg3E
その他先生の説明の要約

HalfFor
2つずつやる。
番兵のいる場所をど真ん中にする。
前からと後ろから探す方法。

oddEvenPointerBit番兵
番兵を後ろにして偶数と奇数に分けて探す方法。

eightPointerBit番兵
8個?4個?とりあえず多くをまとめて調べる方法。

longPointerBit番兵
私のはこれに似ているらしい。
先生のは4文字じゃなくて8文字まとめて調べられるらしい?

すべてを試すのにそのまま書いていたらMainが100行くらいになってしまう。
ストップウォッチをリセットして実行して―は共通なので、
delegateを使って関数のアドレスを配列で保持しておけばまとめて書くことができるようになる。
------------------------------------------
言えば見せてくれたかもしれないですけど、
先生が作った検索部分のソースは見られませんでした。

ちなみに、次やるのはソートです。
(実はこの授業テストがあるらしいです。)


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