配列を分割したい(例えば[1,2,3,4,5,6,7,8]
)、最初のパーティションは偶数の値、2番目の奇数の値(例の結果:[2,4,6,8,1,3,5,7]
)を保持する必要があります。整数の配列を偶数と奇数に分割する方法は?
私はこの問題を組み込みのArray.prototype
メソッドで2回解決することができました。第1の解決策は、map
およびsort
を使用し、次はsort
です。
ソートアルゴリズムを使用する3番目のソリューションを作成したいと思いますが、リストをパーティション化するためにどのアルゴリズムが使用されているのかわかりません。私はバブルの並べ替えについて考えていますが、私はそれが私の2番目の解決策(array.sort((el1, el2)=>(el1 % 2 - el2 % 2))
)で使用されていると思います... quicksort
を見ましたが、整数が偶数か奇数ならチェックをどこに適用するのかわかりません...
要素の順序を維持したままそのようなタスクを実行する最適なアルゴリズム(配列が成長する直線的スケーリング)は何ですか?
どのような並べ替えも最高 'O(nlogn)'なので、線形スケーリングが必要な場合、それらは最良のオプションではありません – frozen
'sort' ??? 'filter'を使ってみましたか? – Bergi
なぜインプレースですか?それはどんな目的に役立ちますか? –