アルゴリズム

いろいろなアルゴリズムの説明・サンプルコード(擬似コードまたはJava)が纏められているホームページです。

紹介されているアルゴリズム

Data structures(データ構造)

  • Binary heap(二分ヒープ)
  • Circular buffer(リングバッファ)
  • D-ary heap(Dヒープ)
  • Hash table(ハッシュテーブル)
  • Linked list(連結リスト)
  • Multiset(多重集合)
  • Queue(キュー)
  • Set(集合)
  • Stack(スタック)

Graph algorithms(グラフ)

  • Bellman-Ford algorithm(ベルマン-フォード法)
  • Borůvka’s algorithm(ブルーフカ法)
  • Breadth-first search(幅優先探索)
  • Depth-first search(深さ優先探索)
  • Dijkstra’s algorithm(ダイクストラ法)
  • Floyd-Warshall algorithm(ワーシャル-フロイド法)
  • Jarník-Prim algorithm(プリム法)
  • Kruskal’s algorithm(クラスカル法)
  • Seven bridges of Königsberg(一筆書き)
  • Tarjan’s algorithm(タージャンのオフライン最小共通祖先アルゴリズム)
  • Topological ordering(トポロジカルソート)
  • Travelling salesman problem(巡回セールスマン問題)

Mathematics(数学)

  • Annuity(年金)
  • Bayes’ theorem(ベイズの定理)
  • Euler’s theorem(オイラーの定理)
  • Factorial(階乗)
  • Factorization(因数分解)
  • Fermat’s Last theorem(フェルマーの最終定理)
  • Fermat’s Little theorem(フェルマーの小定理)
  • Fibonacci series(フィボナッチ数)
  • Greatest common divisor(最大公約数)
  • Least common multiple(最小公倍数)
  • Perfect number(完全数)
  • Quadratic equation(二次方程式)

Miscellaneous(いろいろ)

  • Fisher-Yates shuffle[ランダムシャッフルのアルゴリズム]
  • In-place swap[一時的な格納変数なしで二つの異なる変数の内容を交換]
  • Palindrome(回文)

Puzzles(パズル)

  • Eight queens problem(エイト・クィーン問題)
  • Knight’s tour(ナイト・ツアー)
  • Nim(ニム)
  • Seven bridges of Königsberg(一筆書き)
  • Sudoku(数独)
  • Two jars(2つの瓶)
  • Wolf, sheep, cabbage(川渡り問題)

Search algorithms(検索)

  • Binary search(二分探索)
  • Interpolation search(内挿探索)
  • Linear search(線形探索)
  • Prune and search(枝刈り探索)

Sorting algorithm(整列)

  • Bogosort(ボゴソート)
  • Bubble sort(バブルソート)
  • Bucket sort(バケットソート(別名:バケツソート))
  • Counting sort(分布数え上げソート)
  • Heapsort(ヒープソート)
  • Insertion sort(挿入ソート)
  • Merge sort(マージソート)
  • Quicksort(クイックソート)
  • Radix sort(基数ソート)
  • Selection sort(選択ソート)
  • Shaker sort(シェーカーソート)
  • Shell sort(シェルソート(改良挿入ソート))