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