Ce défi décrit déjà le dropsort. Cependant, je suis un peu paresseux et j'ai vraiment besoin que mon tableau soit un peu plus trié qu'auparavant, il n'a pas besoin d'être trié complètement .
Dans Drop Sort, nous supprimons chaque élément de moins que tout élément précédent. Dans Lazy Drop Sort, nous supprimons chaque élément de moins que celui qui le précède strictement .
Voici un exemple. Considérez le tableau suivant:
8 6 9 9 7 2 3 8 1 3
Marquons chaque élément de moins que celui qui le précède.
8 6 9 9 7 2 3 8 1 3
^ ^ ^ ^
Remarquez comment ni l'un ni l'autre n'a 3
été marqué, ni le dernier 8
. Ils sont tous plus grands que l'élément unique à gauche d'eux.
En complétant l'algorithme, en supprimant les éléments marqués, on obtient:
8 9 9 3 8 3
Cela semble fondamentalement plus trié. Un peu. Je suis fainéant.
Votre tâche, comme vous l'avez peut-être déjà déduit, est d'implémenter cet algorithme.
L'entrée est un tableau d'au moins 1 entier positif compris entre 1 et 9, vous pouvez donc également prendre une chaîne de chiffres.
C'est du code-golf , le moins d'octets gagne!
Cas de test supplémentaires:
1
1
1 2 3
1 2 3
5 3 1
5
1 2 3 2 1
1 2 3
1 1 1 9 9 9 1 1 1 9 9 9 1 1 1
1 1 1 9 9 9 1 1 9 9 9 1 1
9 9
9 9
5 2 4 2 3
5 4 3