C#で学ぶアルゴリズムとデータ構造

C MAGAZINE連載

結城浩

目次

はじめに

こんにちは、結城浩です。 ここは、 月刊誌『C MAGAZINE』 の連載記事 『C#で学ぶアルゴリズムとデータ構造』 のサポートページです。

この連載では、 基本的なアルゴリズムとデータ構造を紹介していこうと思います。

プログラミング言語としては主にC#を用いますが、 C#に依存した話題にはしないつもりです。

各回の記事

第1回 (2005年5月号) : アルゴリズムとは何か、データ構造とは何か

アルゴリズムとデータ構造について解説します。

アルゴリズムとは / ユークリッドの互除法 / エラトステネスの篩 / データ構造とは

第2回 (2005年6月号) : 素因数分解

素因数分解のアルゴリズムを紹介します。

素因数分解とは / 素因数分解は難しい / 素因数分解はなぜ重要か / 試行割算法 / ロウ法 / 多倍長整数演算クラスライブラリ

第3回 (2005年7月号) : パリティ・チェックサム・グレイコード

符号化のアルゴリズムを紹介します。

パリティチェック / パリティの意味 / チェックサム / グレイコード / グレイコードの意義 / パリティとの比較 / グレイコードの応用

第4回 (2005年8月号) : 配列とO記法

もっとも基本的なデータ構造である配列と、アルゴリズムを考える上で大切なO記法という概念を学びます。

配列 / リニアサーチ / バイナリサーチ / スタック / キュー(リングバッファ)/ O記法

第5回 (2005年9月号) : リスト

リンクのつけかえで要素の挿入や削除が簡単に行えるリストを紹介します。

単方向リスト / 双方向リスト / LRUの実装 / スタックの実装 / キューの実装

第6回 (2005年10月号) : 二分探索木と二色木

高速な検索を行なうことができる二分探索木二色木を紹介します。

二分探索木 / 二色木 / Min / Successor / Search / Insert / Delete

第7回 (2005年11月号) : ハッシュテーブル(ハッシュ法)

キーから、小さな整数(ハッシュ値)を作り出し、それを使ってキーに対応する値を見つけ出すハッシュ法を紹介します。

ハッシュ法 / チェイン式 / オープンアドレス式 / 完全ハッシュ / 線形探査とダブルハッシング

第8回 (2005年12月号) : シャッフリングとサンプリング

擬似乱数を使って、データの順番を並べ替えるシャッフリングと、 サンプルを抽出するサンプリングを紹介します。

シャッフリング / 選択サンプリング / 上書きサンプリング / 貯蔵庫サンプリング

第9回 (2006年1月号) : 擬似乱数生成

擬似乱数生成のアルゴリズムを紹介します。

でたらめなアルゴリズムはよくない / 線形合同法 / M系列乱数 / メルセンヌ・ツイスター / かき混ぜ法による改良 / 一方向ハッシュ関数を使った擬似乱数生成

第10回 (2006年2月号) : ソート(1)

ソートのアルゴリズムを紹介します。

バブルソート / セレクションソート(選択ソート) / インサーションソート(挿入ソート) / シェルソート / ヒープソート / クイックソート

第11回 (2006年3月号) : ソート(2)

ソートのアルゴリズムを紹介します。

カウンティングソート(分布数えソート) / ラディックスソート(基数ソート) / 逆写像ソート / バケットソート

第12回 (2006年4月号) : 確率的アルゴリズム

確率的アルゴリズムを紹介します。

確率的アルゴリズム / トリープ / 本連載を振り返って

リンク

関連リンク

奥村先生のアルゴリズム事典

奥村晴彦先生(Java版は先生たち)による、 古今東西の面白いアルゴリズムを集めた本です。

Knuth先生のTAOCP

Knuth先生による古典的なアルゴリズムの本、 The Art Of Computer Programmingシリーズ(TAOCP)は新訳で出版されています。

Knuth先生によるThe Art Of Computer Programming, Volume 4はまだ出ていませんけれど、 いくつかの章はすでにFascicle(ファスィクル, 分冊)という名の下に出版されています。

そのほかの参考書

利用したライブラリ

ぜひ、感想をお送りください

あなたのご意見・感想をお送りください。 あなたの一言が大きなはげみとなりますので、どんなことでもどうぞ。

あなたの名前: メール:
学年・職業など: 年齢: 男性女性
(上の情報は、いずれも未記入でかまいません)

お手数ですが、以下の問いに答えてから送信してください(迷惑書き込み防止のため)。
今年は西暦何年ですか?

何かの理由でうまく送れない場合にはメールhyuki dot mail at hyuki dot comあてにお願いします。

更新履歴

豊かな人生のための四つの法則