人生を書き換える者すらいた。この問題をC言語の勉強がてらやってみました。幅優先探索とか色々方法はあるみたいですが、A-starなんてアルゴリズムがあるらしく、折角なので調べながらやってみました。algorithmhttp://www.geocities.jp/ky_webid/algorithm/022.htmlヒープソートです。木構造に見立てた?ソートのようです。読んでみたのですが、ややこしい・・・。もの凄いややこしいです・・・。ヒープの構築であるinsert_heap関数はわかりました。algorithmhttp://www.geocities.jp/ky_webid/algorithm/021.htmlマージソートです。ありますね、ソートって。algorithmhttp://www.geocities.jp/ky_webid/algorithm/020.htmlクイックソートの話です。もの凄いアルゴリズムですね。これを考え付いた人凄いです。普通こんなの思いつかないって。algorithmhttp://www.geocities.jp/ky_webid/algorithm/019.html凄く単調な暗号化ですね。文字をずらしたり置き換えたりするだけです。algorithmhttp://www.geocities.jp/ky_webid/algorithm/018.html暗号というか単にXORが同じ演算を二回行うと元の値に戻ることを利用しただけのものですね。実際にプログラムを作って試してみましょう。algorithmhttp://www.geocities.jp/ky_webid/algorithm/016.htmlいわゆるツリー構造と呼ばれる物です。概念としては良く分かりました。実際にどう実装するかのイメージがつきません。algorithmhttp://www.geocities.jp/ky_webid/algorithm/015.html前回に引き続き、ハッシュ探索のお話です。今回はオープンアドレス法という処理方法になります。algorithmhttp://www.geocities.jp/ky_webid/algorithm/014.htmlハッシュの話が出てきました。LL等、他の言語では言語仕様として存在しているものですね。Cの場合は自分で実装しないといけません。algorithmhttp://www.geocities.jp/ky_webid/algorithm/013.html検索結果位置を保存しておくということですか、やってみます。(void*)Pないとで作った物を利用します。algorithm文字列のポインタ配列をソートするにはどうしたらいいんだろうと思って実装してみた。(void*)Pないともう少しシンプルに実装し直してみます。前の時はlast変数を用意してリストへの追加が最後尾になるように実装したのですが、あまり必要なさそうなので今回は無しでやります。algorithmhttp://www.geocities.jp/ky_webid/algorithm/012.html逆方向にも参照できる双方向リストですね。循環リストの拡張でやってみます。algorithmhttp://www.geocities.jp/ky_webid/algorithm/011.html片方向の線形リストの最後の要素が、一番最初の要素を指すわけですね。似たような実装になるんでしょうか。algorithmhttp://www.geocities.jp/ky_webid/algorithm/010.htmlさてとうとうmalloc関数を使って動的に拡張していくタイプの処理に入りました。このあたりのリスト構造を極めれば今後割りと何でも作れそうな気がします。algorithmhttp://d.hatena.ne.jp/pknight/20090704/1246706552ちゃんとループするように再実装してみました。algorithmhttp://www.geocities.jp/ky_webid/algorithm/009.htmlスタックとは違い、データの追加は後ろですが、データの取り出しは先頭からになります。algorithmhttp://www.geocities.jp/ky_webid/algorithm/008.htmlデータの扱い方の話ですかね。簡単に言うと配列の後ろに追加、また後ろから削除、という感じでしょうか。適当に実装してみます。二分探索法は、あらかじめ配列を昇順あるいは降順にソートしておくことが前提になります。配列の中央にある要素を調べます。algorithmhttp://www.geocities.jp/ky_webid/algorithm/006.htmlソートの話は一旦置いておいて今度は探索アルゴリズム。これは、データ列の先頭から末尾に向かって1つずつ探索していくアルゴリズムです。algorithmhttp://www.geocities.jp/ky_webid/algorithm/005.htmlシェルソートのお時間です。シェルソートは、ある一定距離だけ離れた要素同士で交換処理を行い、この距離を少しずつ縮めていき、最後には普通に挿入ソートを実行することでソートを行います。algorithmhttp://www.geocities.jp/ky_webid/algorithm/004.html挿入ソートの実装です。1番目と2番目を比較し、順番が逆であれば入れ換える。次に、3番目の要素を、正しい順に並ぶように「挿入」する。algorithmhttp://www.geocities.jp/ky_webid/algorithm/003.htmlお次は選択ソートの話です。データ列中で一番小さい値を探し、1番目の要素と交換する。次に、2番目以降のデータ列から一番小さい値を探し、2番目の要素と交換する。バブルソートとはソートアルゴリズムの中でも基本中の基本。別名として単純交換法とか基本交換法と呼ばれるらしい。因みにPerlという言語の場合は一時変数を用意しなくても代入できる。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。