Permutation erzeugen

Thomas Darimont

Erfahrenes Mitglied
Hallo,

hier mal ein kleines Beispiel wie man eine Permutation einer Liste von Werten erzeugen kann:
Java:
package de.tutorials.algo;

import java.util.Arrays;
import java.util.Random;

public class Permutation {
    public static void main(String[] args) {
        Object[] data = {1,2,3,4,5,6,4711};
        Random random = new Random();
        permut(data,random);
        
        System.out.println(Arrays.toString(data));
    }

    static void permut(Object[] data, Random random) {
        for(int i = 0, n = data.length; i < n;i++){
            int j = (int)(i * random.nextDouble()) * (n-1-i);
            Object k = data[i];
            data[i] = data[j];
            data[j] = k;
        }
    }
}

Ausgabe: (Beispiel)
Java:
[4711, 1, 6, 4, 5, 3, 2]

Hier noch eine rekursive Variante:
http://www.tutorials.de/forum/algor...ava/222183-alle-moeglichen-kombinationen.html

Gruß Tom
 

Neue Beiträge

Zurück