Nantes Université

Skip to content
Extraits de code Groupes Projets
PermutationsStrategy.kt 669 octets
Newer Older
Arnaud LANOIX's avatar
Arnaud LANOIX a validé
package permutations

interface PermutationsStrategy<K> {
    /**
     * donne la liste de toutes les permutations de la liste passée en paramètre
     * @param data la liste de valeurs à permuter
     */
    fun permutations(data: List<K>): List<List<K>>

    /**
     * méthode utilitaire qui réalise l'échange entre deux positions dans une liste
     * @param data une liste de valeurs
     * @param a la position n°1 dans l'échange
     * @param b la position n°2 dans l'échange
     */
    fun swap(
        data: MutableList<K>,
        a: Int,
        b: Int,
    ) {
        val temp = data[a]
        data[a] = data[b]
        data[b] = temp
    }
}