コーディングに役立つ! アルゴリズムの基本


本連載ではアルゴリズムとデータ構造を学ぶ、または学び直すことで、プログラミングのスキルを深めていきます。アルゴリズムは学問として取り扱われることが多いですが、この連載では開発の現場に役立つスキルを身に付けることを目的とします。


機械学習/Deep Learningが気になる人も要注目、「アルゴリズム」の基本が学べる無料の電子書籍150ページ
人気連載まとめ読み! @IT eBook(29) 人気過去連載を電子書籍化して無料ダウンロード提供する@IT eBookシリーズ。第29弾では「コーディングに役立つ!アルゴリズムの基本」10回分を1冊のPDFとしてまとめた。アルゴリズムとは何か? なぜ学ぶべきなのだろうか?
Coding Edge」フォーラム 2017/6/30
いまさらアルゴリズムを学ぶ意味

いまさらアルゴリズムを学ぶ意味

コーディングに役立つ! アルゴリズムの基本(1)

 コンピュータに「3の倍数と3の付く数字」を判断させるにはどうしたらいいか。発想力を鍛えよう

2008/8/1

データ構造の選択次第で天国と地獄の差

データ構造の選択次第で天国と地獄の差

コーディングに役立つ! アルゴリズムの基本(2)

 データ集合の処理方法を間違うと、どつぼにハマることがある。配列とリンクリスト、どちらを使えばいい?

2008/9/1

再帰でハノイの塔を攻略せよ

再帰でハノイの塔を攻略せよ

コーディングに役立つ! アルゴリズムの基本(3)

 自身を呼び出すアルゴリズムを再帰という。再帰を使うとスマートになるプログラムとそうでないものの違いは何か?

2008/10/1

Internet Explorerよりも速くソートできるかな

Internet Explorerよりも速くソートできるかな

コーディングに役立つ! アルゴリズムの基本(4)

 ソートにはさまざまなアルゴリズムがある。IEに組み込まれたソートよりも高速なソートアルゴリズムを見つけ出せるだろうか

2008/11/5

Internet Explorerよりも速くソートできたよ

Internet Explorerよりも速くソートできたよ

コーディングに役立つ! アルゴリズムの基本(5)

 IEに組み込まれたソートよりも高速な方法はあるだろうか。ついに見つけたソートアルゴリズムとは?

2008/12/3

FireBugで探索アルゴリズムを見ていこう

Firebugで探索アルゴリズムを見ていこう

コーディングに役立つ! アルゴリズムの基本(6)

 探索のアルゴリズムを理解するためにコードをデバッガで見ていこう。計算量による効果予測にも触れる

2009/1/7

文字列の中から効率良くキーワードを探し出せ

文字列の中から効率良くキーワードを探し出せ

コーディングに役立つ! アルゴリズムの基本(7)

 ある文章の中から特定の文字列を探し出す方法を4つ紹介。考え方を変えて効率の良さを目指そう

2009/2/4

データ量を操る圧縮/展開を究めよう

データ量を操る圧縮/展開を究めよう

コーディングに役立つ! アルゴリズムの基本(8)

 普段何げなくファイルを圧縮したり、圧縮されたファイルを展開したり。データを圧縮するアルゴリズムを体験してみよう

2009/3/4

データを加工して圧縮率を高めよう

データを加工して圧縮率を高めよう

コーディングに役立つ! アルゴリズムの基本(9)

 圧縮率を高めるために“ひと工夫”。事前にデータを変換して圧縮しやすくしてみよう

2009/4/2

レコメンデーションとエディットグラフ

レコメンデーションとエディットグラフ

コーディングに役立つ! アルゴリズムの基本(最終回)

 ECサイトで見かける「レコメンド」機能や、ユーザーの書き込み校正を行うための文書比較アルゴリズムを実装してみよう!

2009/5/1

関連記事

「+1」だけで四則演算をするには?
いまから始めるアルゴリズム(1) 
ほんのちょっとの工夫で、1000倍早いプログラムが書けるとしたら……。プログラミングの基礎、アルゴリズムの世界をのぞいてみよう

ソート処理時間、選ぶアルゴリズムでこんな差が!
いまから始めるアルゴリズム(2) 
プログラムを作成し処理時間を測定。その結果は? 使用メモリ量や保守のしやすさも考慮してアルゴリズムを選ぼう。奥が深いから、面白い

西暦2400年はうるう年? うるう年じゃない?
いまから始めるアルゴリズム(3) 
あなたの身近な出来事にも、アルゴリズムが隠れている。「この命令が使えなかったらどう処理しよう?」と、考えてみるのも面白い

TListの実装と性能

TListの実装と性能

Delphiアルゴリズムトレーニング(1)

 オブジェクト指向により、アルゴリズムは隠ぺいされることが多くなった。しかし、「用意されていない処理」が求められたときに対応できるか

2009/2/12

>単純なキューと循環キュー

単純なキューと循環キュー

Delphiアルゴリズムトレーニング(2)

 循環キューの実装を通じて、キューの構造や機能を検証する。キューをリストに使う場合、どのような処理が向いているだろうか

2009/3/13

AVL木で木構造を学ぼう

AVL木で木構造を学ぼう

Delphiアルゴリズムトレーニング(3)

 平衡二分探索木の1つにAVL木という木構造がある。AVL木はどのように探索時のコストを抑えているのだろうか

2009/4/13

もっとAVL木で木構造を学ぼう

もっとAVL木で木構造を学ぼう

Delphiアルゴリズムトレーニング(4)

 第3回で説明したAVL木を拡張する。これとListやTreeを組み合わせたアルゴリズムを考えてみよう

2009/5/25

RDBMSで使われるB木を学ぼう

RDBMSで使われるB木を学ぼう

Delphiアルゴリズムトレーニング(5)

 多くのデータベース管理システムで利用されているB木。木が育っていく様子を見ながら、アルゴリズムを考えてみよう

2009/6/22

B木から要素を削除する方法を学ぼう

B木から要素を削除する方法を学ぼう

Delphiアルゴリズムトレーニング(最終回)

 B木から要素が取り除かれると、どのような挙動になるのだろうか。バランスが壊れそうになったら?

2009/7/16

ブロックアルゴリズムとB-Treeアルゴリズム
連載:Linuxファイルシステム技術解説(2)
 長らくLinuxを支えてきたext2の仕組みを明らかにするとともに、ext2の問題点を克服するための諸技術について解説する
 「Linux & OSS」フォーラム 2003/6/24
これだけは知っておきたいアルゴリズム〜共通鍵暗号
デファクトスタンダード暗号技術の大移行(3)
 2010年までにより安全な暗号に乗り換える必要がある。どのような共通鍵暗号アルゴリズムを採用すべきだろうか
 「Security&Trust」フォーラム 2006/5/20
知っておきたいアルゴリズム〜ハッシュ・公開鍵暗号
デファクトスタンダード暗号技術の大移行(4)
 安全性・処理性能が国際的に認められているアルゴリズムを押さえよう。ハッシュ関数、公開鍵暗号、デジタル署名を紹介
 「Security&Trust」フォーラム 2006/7/11
GoogleのMapReduceアルゴリズムをJavaで理解する
いま再注目の分散処理技術(前編) 
最近注目を浴びている分散処理技術「MapReduce」の利点を、Javaのサンプルからアルゴリズムレベルで理解することによって探る
Java Solution」フォーラム 2008/7/8
いまさら聞けないHadoopとテキストマイニング入門
テキストマイニングで始める実践Hadoop活用(1) それぞれの概要や構成、MapReduceの仕組み、Hadoopの活用場面などを解説し、Hadoopの実行環境を構築します
Java Solution」フォーラム 2011/6/21
実践! 「MapReduceでテキストマイニング」徹底解説
テキストマイニングで始める実践Hadoop活用(2) MapReduceを使ったテキストマイニングの例として青空文庫の作品データから著者の寿命を推定するサンプルを作成
Java Solution」フォーラム 2011/7/20
テキストマイニングの精度を上げる2つのアルゴリズム
テキストマイニングで始める実践Hadoop活用(終) Hadoopを使ったテキストマイニングを精度向上するために「Passive-Aggressive」「ロジスティック回帰」を徹底解説
Java Solution」フォーラム 2011/9/30
Apache Mahoutの使い方:テキスト分類のアルゴリズムを活用する
Mahoutによる機械学習の実際
 Apache Hadoop用の機械学習フレームワークの1つであるApache Mahoutを使い、機械学習の初歩を学びましょう
Database Expert」フォーラム 2013/12/4
自動運転技術の歴史と使用するセンサーの基礎知識
Google Carの自動運転技術大解剖(1) 
本連載では、公開情報を基に主にソフトウエア(アルゴリズム)の観点でGoogle Carの仕組みを解説していきます
Smart & Social」フォーラム 2015/5/29
自動車を制御するロボットの思考と行動の仕組み――Google Carが現実世界を認識する際の3つのアルゴリズムと実用化への課題
Google Carの自動運転技術大解剖(2)
 制御AIの思考と行動のサイクル、位置推定の考え方Markov Localizationにおける3つのアルゴリズムと、その使い分けなどについて
Smart & Social」フォーラム 2015/7/3
グーグルの自動運転車が事故を起こさないためにしていること
Google Carの自動運転技術大解剖(終)
 ロボットの思考と行動のサイクルのうち「行動計画の立案」と「計画した動作の実行」について解説。最後に人工知能の歴史も
Smart & Social」フォーラム 2015/12/9

 

index Coding Edgeフォーラム トップページ


Coding Edge フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

>

Coding Edge 記事ランキング

本日 月間