がk = \ sqrt nで最小値を取得するという考え方を活用するアルゴリズムとデータ構造がいくつかあります。一般的な例は次のとおりです。
- O(\ sqrt n)の離散対数を計算するためのベイビーステップジャイアントステップアルゴリズム、
- 時間およびメモリでの静的2D直交範囲カウント、
- O(\ sqrt [k] n)に EXTRACT-MINがあり、にDECREASE-KEYがある優先度キュー
- 多項式時間で色で3色のグラフを着色する、
ほんの数例を挙げます。
このようなアルゴリズムは多くの場合最適ではありませんが、学生は理解しやすく、素朴な境界が最適でないことをすぐに示すことができます。また、平方根のアイデアのデータ構造は、キャッシュの扱いやすさのために、バイナリツリーベースのデータ構造よりも実用的である場合があります(キャッシュを無視する手法を考慮していません)。だからこそ、教えながらこのトピックにかなりの注意を払っています。
この種のより特徴的な例に興味があります。だから私は、分析が平方根のアイデアに依存する(できればエレガントな)アルゴリズム、データ構造、通信プロトコルなどを探しています。それらの漸近は最適である必要はありません。