質問

アレイの長さが1000未満であると仮定して、整数の配列を取得し、コレクション内の最大整数を返す関数を実装する必要がある場合。バブルソートまたはマージソートを使用しますか?

また、配列の長さが1000を超える場合、上記のアルゴリズムの選択はどうなりますか?別のアルゴリズムよりも特定のアルゴリズムを使用する理由について少し混乱しています。それは、その複雑さと時間、またはこれに関係する他の要因のためだけですか?上記の機能をテストする必要があり、単純なアルゴリズムにはもっと時間がかかり、複雑なアルゴリズムの時間が短い場合はどうなりますか?

役に立ちましたか?

解決

私はまったく並べ替えません。私はただ配列を横断し、私が行くにつれて最大のものを追跡します。これにはo(n)時間がかかりますが、通常、ソートアルゴリズムはo(n*log(n))よりも良くなりません。

他のヒント

このサイトは揺れます

http://www.sorting-algorithms.com/

ソートする必要がある場合は、バブルソートよりもはるかに速いため、マージソートを使用します。 1000の要素と単一の種類の場合、おそらく最新のコンピューターの違いには気付かないでしょうが、より多くの要素(> = 10 000を考えています)の場合、違いは概念になります。

配列nの長さを呼び出しましょう。

バブルソートを使用して配列を並べ替えると、n*n単位の時間の順にほとんど必要になります。

マージソートを使用して並べ替えると、n * log n単位の時間の順序で並べ替えます。

単にそれぞれの要素を1つ後に見て、どちらが最大の要素を追跡しても、n単位の順に取ることができます。

したがって、最後の方法を使用します。

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