Salve a tutti,
l'altro giorno a lezione abbiamo visto in linea teorica (ma in futuro sarà da applicare in c++) il Natural merge sort, ovvero un modo per ordinare delle liste mediante divisione delle stesse in catene e successiva fusione.
Nel preambolo c'è stato detto che il normale merge sort fa un forte uso degli indici e quindi in una struttura come la lista, in cui non si ha un accesso diretto, porterebbe ad un grosso spreco di risorse. C'è stato quindi introdotto questo natural merge sort.

E' stato però spiegato in tutta fretta a fine lezioni e sinceramente mi è sfuggito totalmente il suo funzionamento.
Nelle slide prima dice che:

Spezzetta la lista in sottoliste (dette catene), e per farlo inizia a leggere sequenzialmente finchè gli elementi che incontra sono ordinati li mantiene in una catena, quando ne trova uno non ordinato spezza e inizia un'altra catena. Poi fa vedere graficamente come successivamente fa il merge delle catene a due a due e nel farlo riordina gli elementi, fino ad avere una lista ordinata.

Fin qui, almeno in via teorica tutto chiaro, anche se non si capisce in linea pratica come effettuare il tutto.

Arrivando nel passo successivo delle slide, dove credo appunto affronta lo sviluppo pratico (più che altro in pseudocodice) parla della lista originale L e di due sottoliste A e B, ma sinceramente mi sono abbondantemente perso perchè ci sta solo pseudocodice senza commenti ed i commenti che ha fatto a lezione non sono riuscito a capirli perchè andava di fretta.

Se qualcuno saprebbe spiegarmi come si traforma la parte teorica in teoria e cosa centrano quelle due "sottoliste" mi farebbe un grande favore. Intanto cerco su google anche se sto trovando solo cose in inglese che mi stanno un pò confondendo (Il nome italiano quale sarebbe? Ordinamento per fuzione Naturale? o come?).

Vi ringrazio,
Neptune.