Iniziamo con un esempio
[1,1,1,5,3,1,1,2,78,2,3,1,1,...,1]
Come puoi vedere nell'esempio, 1 è ripetuto molto, ma ci saranno valori anomali (come 78, e in realtà tutto ciò che non è 1).
Il problema alla mia domanda è che, quando decomprimono i numeri, devono mantenere l'ordine originale. Gli algoritmi che ho trovato generalmente trattano numeri univoci, ordinati o non ordinati. Non mi dispiacerebbe usare uno di questi, ma dato che la mia lista intera non è unica, mi chiedo se al momento ci sia qualcosa che è ottimizzato per questo genere di cose.
Pensando velocemente, la mia prima idea era di fare un normale albero di compressione e solo mappare i valori per i modelli.
La mia seconda Idea era di descrivere solo numeri ripetuti in questo modo: 3- > 1, 1- > 5, 1- > 3, 2- > 1, 1- > 2, 1- > 78 , 1- > 2, 1- > 3, x- > 1.
Ovviamente funziona solo se i valori vengono costantemente ripetuti, che generalmente i numeri più bassi verranno ripetuti molto, ma non posso essere al 100% positivo che sarà il caso ogni volta.