Sto cercando di trovare un algoritmo per ottenere elementi per un feed di notizie da diverse fonti.
Esistono più elenchi di dati: S1, S2, ... Sn. Ciascuno di questi elenchi ha una certa quantità nota di articoli, Q1, Q2, ... Qn. Ho bisogno di mostrare questi oggetti con paginazione, con una certa quantità da ciascun elenco per pagina, P1, P2, ... Pn, con un ammontare totale di articoli per pagina T = somma (P). Ottengo elementi dagli elenchi utilizzando offset e limite (in realtà sono tabelle SQL). Ovviamente, a un certo punto, esaurirò gli elementi di un particolare tipo, nel qual caso dovrò riempire gli spazi vuoti con gli elementi di altri elenchi per ottenere esattamente gli oggetti T per ciascuna pagina tranne l'ultimo che può avere meno di elementi T.
Ecco un esempio concreto per N = 2, Q1 = 27, Q2 = 95, P1 = 10, P2 = 20, T = 10 + 20 = 30:
========================================================================== | Page | From S1 | S1 offset | S1 limit | From S2 | S2 offset | S2 limit | ========================================================================== | 1 | 10 | 0 | 10 | 20 | 0 | 20 | | 2 | 10 | 10 | 10 | 20 | 20 | 20 | | 3 | 7 | 20 | (7) | 23 | 40 | 23 | | 4 | 0 | 0 | (0) | 30 | 63 | 30 | | 5 | 0 | 0 | (0) | 2 | 93 | (2) | ==========================================================================
I numeri tra parentesi non sono molto importanti, perché posso vivere chiedendo alla tabella SQL più voci di quante ne abbia.
Idealmente, sto cercando un algoritmo che possa darmi offset e limiti per una determinata pagina.
Qualche idea?