マガジンのカバー画像

基礎アルゴリズム:ソートとサーチとデータ構造

14
プログラミングにまつわる記事のうち ソート、サーチ、データ構造、デザインパターンなどに関する記事群
運営しているクリエイター

記事一覧

探索

ソースはChatGPT4o 関連 探索アルゴリズムは、特定のデータセット内から指定されたクエリに…

アルちゃん
3週間前

クイックセレクト (Quickselect)

C#include <stdio.h>void swap(int* a, int* b) { int temp = *a; *a = *b; *b = te…

アルちゃん
3週間前
1

深さ優先探索 (Depth-First Search, DFS) と 幅優先探索 (Breadth-First Search, BFS)

C#include <stdio.h>#include <stdlib.h>#define MAX 100// グラフの隣接リストのノードstruc…

アルちゃん
3週間前

ハッシュ探索(Hash Search)

ハッシュテーブルを用意し、 テーブル上のインデックスをハッシュ関数で作成する。 ハッシュ関…

アルちゃん
3週間前

二分探索(Binary Search)

C#include <stdio.h>int binarySearch(int arr[], int l, int r, int x) { while (l <= r)…

アルちゃん
3週間前

線形探索 (Linear Search)

forなりforeachなりして順番に要素を取り出し IDなり名前なりを比較演算するやつ。 C#include…

アルちゃん
3週間前

ハッシュ

関連 ハッシュ関数何らかの(固定長とは限らない)データを固定長データに変換する。 コンピューター上の変換ならば、 入力を任意の(固定長とは限らない)ビット列とし、 出力は最終的には固定長のビット列となる。 この場合、出力のビット列は整数値と見た方が楽であろう。 ハッシュないしハッシュ値という語は、 このハッシュ関数の出力を指す。 簡単なもの 例えばC#のGetHashCodeをオーバーライドせねばならん時はデータのXORで済まされる。 public over

木の回転

前回 基本的にはwikipediaにある通り。 二分探索木の格納ルール(左子の値<親の値<右子の…

二分探索木

参考 各ノードは親へのリンク無し、削除操作あり。 各ノードに親へのリンク有り、削除操作あ…

疑似乱数

参考 The Art of Computer Programming Volume 2 Seminumerical Algorithms Third Edition 日…

複雑性クラス

この記事は最近勉強し始めたので、これからに期待される内容です。 初手から間違っていること…

ヒープ

このページのコードはあんまりテストしてません。 ソートと木構造の中間みたいな存在。 子ノ…

ソートとサーチとデータ構造

Min,MaxC #include <stdio.h>#include <float.h>double minValue(double arr[], int size){ …

AVL木

この記事はバランスを崩している可能性があります。 参考文献、英語wikiおよびクヌース先生の3巻(青いやつ) 注意すべきは ・回転によるポインタないし参照の接ぎ替えのタイミング ・バランスファクターの記録、計算時期による分岐条件の意味の変化 二分探索木 回転 2重回転 BinaryTreeNode LeftRight(BinaryTreeNode root){ RotLeft(root.Left); return RotRight(root);}Binary