私は多くの基準でソート可能なデータセットのページングアルゴリズムを実装しようとしています。残念ながら、これらの基準のいくつかはデータベースレベルで実装できますが、アプリケーションレベルで行う必要があります(別のデータソースと統合する必要があります)。ページング(実際には無限のスクロール)要件があり、すべてのページング呼び出しでアプリケーションレベルでデータセット全体をソートする際の苦痛を最小限に抑える方法を模索しています。C++ std :: partial_sortに相当するC#はありますか?
部分ソートを行う最良の方法は、ソートする必要がある部分のソートのみです。 .NETライブラリで利用できるC++のstd::partial_sort
関数に相当するものはありますか?この問題を解決するにはどうすればよいですか?
EDITは:のは、私はいくつかの並べ替えの基準に従って、1000年要素集合の要素21-40を取得する必要がありましょう
:ここで私はのために行くよ何の例です。並べ替えを高速化するために、とにかく毎回データセット全体を処理しなければならないので(これはHTTP経由のステートレスWebサービスです)、データセット全体を並べる必要はありません。私は要素21-40が正しく注文されている必要があります。 3つのパーティションを作成すれば十分です。要素1-20、はソートされていません。(要素21より小さいすべて)。要素21-40,ソート;要素41-1000,はソートされていません(ただし要素40より大きいすべて)。
可能複製されて終わると信じてhttp://stackoverflow.com/questions/2540602/does -c-sharp-have-a-stdnth-element-equivalent – FlavorScape
それは*選択*の質問です。これは部分的な並べ替え*の質問です。しかし、可能であれば、この問題をどのように解決できるかについて、是非お答えください。 –
ページング時に、何かがリストの終わりにあって、それをソートすることによって、最初に属していた場合、部分ソートの仕組みはどうなりますか?どんなソートでもすべての要素に触れる必要はありませんか? –