学習・教育を目的に、Pythonで実装したアルゴリズムをコミュニティが保守するコレクション。
trekhleb/javascript-algorithms
解説と参考リンク付きで、定番のアルゴリズムとデータ構造をJavaScriptで実装したコレクションです。
- スター
- 196,685
- フォーク
- 31,010
- 未解決の Issue
- 413
- 最終コミット
- 3 か月前
これは何?
このリポジトリでは、幅広い一般的なアルゴリズムとデータ構造をJavaScriptで実装しています。連結リスト、スタック、キュー、ハッシュテーブル、ヒープなどの基本的な構造に加え、木構造(BST、AVL木、赤黒木、セグメント木、Fenwick木)、グラフ、トライ、LRUキャッシュも扱っています。
アルゴリズムは、トピック(数学、集合、文字列、探索、ソート、グラフ、暗号、機械学習の例)と、ブルートフォース、貪欲法、分割統治法、動的計画法、バックトラッキングといったパラダイム別に整理されています。各項目には難易度が付いており、個別の解説ページへのリンクがあります。
データ構造とソートアルゴリズムのBig O計算量をまとめた表も用意されています。また、依存関係のインストール、ESLintの実行、名前を指定したテストの実行に使えるnpmスクリプトも提供されています。
主な機能
- 01連結リスト、ヒープ、トライ、複数の種類の木構造など、主要なデータ構造を実装しています。
- 02アルゴリズムをトピック別に整理し、動的計画法やバックトラッキングなどのパラダイム別にも分類しています。
- 03各アルゴリズムから、参考資料や動画へのリンクを含む個別の解説ページにアクセスできます。
- 04データ構造とソートアルゴリズムのBig O計算量を比較できる表を掲載しています。
- 05lintやテストの実行に使えるnpmスクリプトを用意しており、テスト名での絞り込みにも対応しています。
ユースケース
- JavaScriptのアルゴリズムが問われる技術面接の準備に使う。
- 実装を読んで、データ構造やソートアルゴリズムの仕組みを学ぶ。
- 一般的なデータ構造やソートの時間計算量・空間計算量を調べる。
- JavaScriptプロジェクトで似た処理を実装する際の参考にする。
トピック
よくある質問
- javascript-algorithms とは?
- 解説と参考リンク付きで、定番のアルゴリズムとデータ構造をJavaScriptで実装したコレクションです。 このリポジトリでは、幅広い一般的なアルゴリズムとデータ構造をJavaScriptで実装しています。連結リスト、スタック、キュー、ハッシュテーブル、ヒープなどの基本的な構造に加え、木構造(BST、AVL木、赤黒木、セグメント木、Fenwick木)、グラフ、トライ、LRUキャッシュも扱っています。
- javascript-algorithms は無料で使えますか?ライセンスは?
- javascript-algorithms は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- javascript-algorithms は今もメンテナンスされていますか?
- 半年以内に更新あり。javascript-algorithms の最終コミットは 2026年7月26日 です。
- javascript-algorithms は何に使えますか?
- JavaScriptのアルゴリズムが問われる技術面接の準備に使う。 実装を読んで、データ構造やソートアルゴリズムの仕組みを学ぶ。 一般的なデータ構造やソートの時間計算量・空間計算量を調べる。 JavaScriptプロジェクトで似た処理を実装する際の参考にする。
- javascript-algorithms はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/trekhleb/javascript-algorithms
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
独学者向けに、ロボティクスのオンライン講座や大学講義、書籍、実践的な教材をまとめたリスト。
オンライン講座と書籍で構成された、Intro・Core・Advanced CSを学ぶ自分のペースで進められる無料のCSカリキュラム。
動画講義のある大学レベルのコンピューターサイエンス講座を、分野別にまとめた厳選リスト。
React、Router、Redux、テスト、React Nativeを扱う、回答付きのReactJS面接質問集。
フローチャート、グラフ、ワークフローエディターなど、ノードベースのインタラクティブなUIを構築するためのオープンソースReact・Svelteライブラリ。