データ構造
特定の操作を効率よく行えるよう、メモリ上でデータを整理する方法。適切な構造の選択が、O(n)とO(log n)の差を生むことは多い。
基本は配列、連結リスト、スタック、キュー、ハッシュテーブル、木(二分探索木、B木、トライ)、ヒープ、グラフ。特殊なものにはブルームフィルタ、スキップリスト、フェンウィック木、セグメント木、接尾辞配列がある。参考文献の定番はロバート・タージャンの業績と、ドナルド・クヌースの『The Art of Computer Programming』。近年はClojureやScalaの永続(イミュータブル)データ構造や、分散アプリ向けのCRDTも使われる。