任意の実数のソートされた配列A [1 ... n]が与えられた場合 各i∈[1 ... n-1]に対して、 (Oで: - [I + 1] [I] A.ショートギャップと平均ギャップ
のi番目のギャップは、A)A. --try 1のN-1個のギャップの平均ギャップを計算されn)時間、Aを繰り返し、各ギャップを 'GapSum'に追加します。 GapSum/n-1 =平均ギャップ
b)Aのi番目のギャップが平均このようなi番目のギャップは、ショートギャップと呼ばれます。 A. の短いギャップを見つけてください - 試してください1:明らかにO(n) - 各ギャップを確認し、最小値を返します。 Aの短いギャップを見つけるために、漸近的に速い分裂と征服のアルゴリズムがありますか?
私はこれをもっと速くする方法について固執していますか?おそらく私が見過ごしている平均的な資産がありますか?どんな方向にも役立ちます。
--edit-- Nicoは、平均ギャップが一定時間内に計算できるとコメントしました。 これは一定時間としてカウントされますか: 一定の時間内の平均ギャップを計算できる唯一の考え方は、計算前に補助配列を準備して、B [i]までのギャップの合計を格納することです。次いで、平均ギャップが一定時間のルックアップがあり、n
を知って、あなたは一定の時間で平均空隙サイズを計算することができ、A
がソートされていることを考えるとB [N-1]/N-1
何を試しましたか?どんな研究努力もせずにあなたの課題を投げ捨てることは、SOにはお勧めできません。 Btw、一定の時間内に平均ギャップを計算することができる。 –
私が思いつくことができる唯一の2つの解決策は、私が記述した2 O(n)時間の方法です。私はしばらくの間それを速くする方法を思いついたが失敗した。 – RYS221
私はそれを計算するためにすべてのギャップ値が必要な場合、どのように平均を一定時間で計算できますか? – RYS221