Sto cercando di implementare un algoritmo di paging per un set di dati ordinabile tramite molti criteri. Sfortunatamente, mentre alcuni di questi criteri possono essere implementati a livello di database, alcuni devono essere eseguiti a livello di app (dobbiamo integrarli con un'altra fonte di dati). Abbiamo un requisito di cercapersone (effettivamente infinito) e stiamo cercando un modo per ridurre al minimo il dolore di ordinare l'intero set di dati a livello di app con ogni chiamata cercapersone.Esiste un equivalente C# a C++ std :: partial_sort?
Qual è il modo migliore per eseguire un ordinamento parziale, solo per ordinare la parte dell'elenco che deve assolutamente essere ordinata? Esiste un equivalente alla funzione di C++ disponibile nelle librerie .NET? Come dovrei andare a risolvere questo problema?
EDIT: Ecco un esempio di quello che sto andando per:
Diciamo che ho bisogno di ottenere elementi 21-40 di un elemento di set 1000, secondo alcuni criteri di ordinamento. Per accelerare l'ordinamento e poiché devo passare attraverso l'intero set di dati ogni volta (questo è un servizio web su HTTP, che è senza stato), non ho bisogno dell'intero set di dati ordinato. Ho solo bisogno degli elementi 21-40 per essere correttamente ordinati. È sufficiente creare 3 partizioni: Elementi 1-20, non ordinati (ma tutti inferiori all'elemento 21); elementi 21-40, ordinati; ed elementi 41-1000, non ordinati (ma tutti maggiori dell'elemento 40).
possibile duplicare http://stackoverflow.com/questions/2540602/does -c-sharp-have-a-stdnth-element-equivalent – FlavorScape
Niente affatto-- questa è una domanda * selection *, e questa è una domanda * partial sort *. Con ogni mezzo, però, sentiti libero di fornire una risposta su come questo problema possa essere risolto in termini di quel problema, se possibile. –
Quando cercavi, se qualcosa era alla fine della lista e ordinando apparteneva all'inizio come funzionerebbe un ordinamento parziale? Non avrebbe bisogno di toccare ogni elemento? –