長さNの配列は値1,2,3 ... N ^ 2を含むことができます。それはO(n)の時間でソートすることは可能ですか?

StackOverflow https://stackoverflow.com/questions/4238460

  •  26-09-2019
  •  | 
  •  

質問

これは、1からN ^ 2の範囲の値を含むことができる長さNの配列を指定(N平方)の両方含め、値は一体です。それはO(N)時間で、この配列をソートすることは可能ですか?可能な場合はどのように?

編集:これは宿題ではありません。

役に立ちましたか?

解決

各Xは、X = 1 + X1 + X2 * Nと(X1、X2)として表すことができ、ある基地N、の各整数を書きます。今、あなたは、ソートされた配列で、その結果、一度X1上とx2に一度、ソートカウントで二回、それを並べ替えることができます。

他のヒント

はい、することができます、使用して基数ソートするのN バケツと二つのパス。基本的に、あなたはのN のベースで2桁の数字を持つものとして数字を扱います。

基数ソートの使用O(n)時間で明確に定義された最大値を持つ整数の任意の配列をソートすることが可能ですに。これはおそらく、あなたが遭遇した整数の任意のリストの場合です。あなたは、任意精度の整数のリストを並べ替えた場合例えば、それは真実ではないでしょう。しかし、すべてのC整数型が固定範囲を明確に定義されています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top