-1

バイナリ配列をソートするための最適化されたphpカスタム関数を作成するのを手伝ってもらえますか?現在、2つのforループでバブルソートアルゴリズムを使用しています。以下に示す私のコード:

for ( $i = 0; $i < $array_size; $i++ )  
{  
   for ($j = 0; $j < $array_size; $j++ )  
   {  
      if ($numbers[$i] < $numbers[$j])  
      {  
         $temp = $numbers[$i];  
         $numbers[$i] = $numbers[$j];  
         $numbers[$j] = $temp;  
      }  
   }  
}
4

1 に答える 1

3

バブルソートではO(N^2)、以下のアプローチを使用できますO(N)

  1. 配列内のすべての要素の合計を求めます。1配列内のの数がわかります。これには、array_sum()関数を使用できます。結果を呼び出しsます。またn、配列内の要素の数とします。

  2. ソートされた配列には、sのn-s数と0それに続く'のs数が含まれ1ます。

O(N)各配列要素に一度タッチする必要があるため、これ以上のことはできないことに注意してください。

于 2012-09-26T12:49:26.497 に答える