Random Sortierung

Status
Nicht offen für weitere Antworten.

Linkein

Mitglied
Hi Leute, ich hoffe ich bin hier Richtig,

ich habe eine Freundin nach einer Methode zur Sortierung einer Liste gefragt,

Java:
    public static void method(List list)
    {
        Random r = new Random();
        int nr = ListMethods.getListSize(list);
        for (int i = 0; i < nr; i++)
        {
            if (!list.isEmpty())
            {
                list.toFirst();
                for (int j = 0; j < r.nextInt(nr); j++)
                {
                    list.next();
                }
                Object obj = list.getItem();
                list.remove();
                list.toFirst();
                list.insertInFrontOf(obj);
            }
        }
    }

Das war ihre Lösung. Das Programm funktioniert nun auch prima,

aber leider blicke ich nicht ganz durch, könnte mir jemand eventuell nochmal schritt für schritt erklären, was genau das programm macht, und wie es das macht? ???:L

Vielen Dank schonmal, Linkein
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
fang doch selber an, Schritt für Schritt zu beurteilen, was verstehst du an einer Zeile wie
> list.toFirst();
nicht?
wobei das keine Standard-Java-API ist..

-----

ein Hinweis:
> for (int j = 0; j < r.nextInt(nr); j++)
soll wahrscheinlich eine zufällige Anzahl Durchläufe von 1 bis nr sein,
schlecht ist hier aber, dass bei jedem Schleifendurchlauf eine neue Zufallszahl gebildet wird, das bevorzugt die kleineren,

wenn nr 100 ist, und man nur eine Zufallszahl abfragt, kann das 5, 20, oder auch 95 sein, kleine und große Zahlen haben die gleichen Chancen,
um aber in dieser Schleife bis 95 zu gelangen muss man schon extremes Zufallsglück haben,
die ersten Schleifendurchläufe sind noch leicht, aber ab 50 braucht man 45x hintereinander eine Zufallszahl > 50
 

Linkein

Mitglied
>list.remove();
>list.toFirst();
>list.insertInFrontOf(obj);

Hier sollte doch die Liste durchgemischt werden.
Ich bin noch ziemlich am anfang, was ist eine API?

ein Hinweis:
> for (int j = 0; j < r.nextInt(nr); j++)

heißt das also, dass die Anzahl der Daten in der List ausgelesen wird, und dann in der Variable nr gespeichert wird, dann läuft es solange durch, bis j genauso groß ist wie nr?

wenn nr 100 ist, und man nur eine Zufallszahl abfragt, kann das 5, 20, oder auch 95 sein, kleine und große Zahlen haben die gleichen Chancen,
um aber in dieser Schleife bis 95 zu gelangen muss man schon extremes Zufallsglück haben,
die ersten Schleifendurchläufe sind noch leicht, aber ab 50 braucht man 45x hintereinander eine Zufallszahl > 50

das verstehe ich nciht so ganz ???:L

wenn du sagst, dass alle Zahlen die selben Chancen haben, brauche ich doch für jede Zufallszahl das selbe Glück oder?
 

Linkein

Mitglied
Java:
   public static void method(List list)
    {
        Random r = new Random(); // Ein Random r wird erstellt
        int nr = ListMethods.getListSize(list);//nr wird durch die Größe der List definiert
        for (int i = 0; i < nr; i++) // solange i < nr ist, läuft diese for Schleife durch
        {
            if (!list.isEmpty()) // Bedingung: List ist nicht leer
            {
                list.toFirst(); // geht an den Anfang der list
                for (int j = 0; j < r.nextInt(nr); j++)
                {
                    list.next();// geht einen Schritt weiter
                }
                Object obj = list.getItem();
                list.remove();
                list.toFirst();
                list.insertInFrontOf(obj);
            }
        }
    }

jetzt mal ein versuch von mir, siehe kommentare!

Verbesserungen sind erwünscht :)
 
S

SlaterB

Gast
API heißt Bibliothek,
die Standard-List-Klasse, die fast jeder kennt,
List (Java Platform SE 6)
hat keine Methode toFirst()
du benutzt anscheinend irgendeine eigene Klasse,
dass die dir jemand anders erklären soll ist schon ein starkes Stück

aus deinem restlichen Text erkenne ich, dass du keine einzige Methode verstehst,
alles erklären möchte ich nicht, macht auch keinen Sinn wenn du die Grundbausteine nicht wenigstens einzeln kennst

denke doch erstmal über einfachere Programme nach,
z.B.
Java:
public static void method(List list)
{
      list.toFirst();
}

edit: ich sehe gerade dein kommentiertes Programm, da werde ich gleich noch was hier reinschreiben

edit2:
ok, was machen nun Zeile 14-17? das Programm nimmt das Element von der per Schleife ausgewählten Stelle und schreibt es ganz noch vorne,
da man das oft wiederholt, sollten am Ende mehr oder weniger alle Elemente verschoben worden sein,

klappt aber nicht so gut, wegen der schlechten Zufallsauswahl
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
denke schon, wobei ich natürlich nur ungefähr raten kann, was die unbekannte List-Klasse so tut
 

Linkein

Mitglied
okay, danke für deine hilfe.

Wenn noch etwas unklar ist, schreibe ich nochmal hier rein.

Gegebenenfalls kann ich das auch die list class hierreinposten, das würde wahrscheinlich helfen :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
laxla123 Bedeutung int random Java Basics - Anfänger-Themen 3
monsterherz Arbeiten mit Random Java Basics - Anfänger-Themen 12
J Math.Random Java Basics - Anfänger-Themen 9
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
I aus 2 random zahlen soll nur die ungerade summe der beiden genommen werden. Java Basics - Anfänger-Themen 13
K Problem mit "Random" Java Basics - Anfänger-Themen 5
W Bestimmte Zahlen bei Math.random ausschließen? Java Basics - Anfänger-Themen 31
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
S Math.random funktioniert nicht Java Basics - Anfänger-Themen 5
S Random(x,y,z) Java Basics - Anfänger-Themen 4
alialhajhossein math.random Java Basics - Anfänger-Themen 3
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
L Zufälliges Objekt aus der ArraylList ohne java.util.Random Java Basics - Anfänger-Themen 56
W Random Zahl unter Berücksichtung eines Durchschnitts Java Basics - Anfänger-Themen 7
D Wahrscheinlichkeiten mit Math.random() Methode Java Basics - Anfänger-Themen 1
T Random soll Zufallszahl beibehalten. Java Basics - Anfänger-Themen 11
A Random Double mit Math.round() runden? Java Basics - Anfänger-Themen 1
B Math.random mit Boolean array? Java Basics - Anfänger-Themen 17
I math.random Grenzwerte Java Basics - Anfänger-Themen 2
C Arraywerte random vertauschen Java Basics - Anfänger-Themen 2
E Methoden Math.Random() kürzen ? Java Basics - Anfänger-Themen 2
SchmidiMC Methoden Random in Methode neu generieren lassen Java Basics - Anfänger-Themen 1
J Klassen Math && Random: wie zufällig sind Zufallszahlen? Java Basics - Anfänger-Themen 19
J Operatoren Random wird nur einmal erstellt und dann immer verwendet Java Basics - Anfänger-Themen 2
D Erste Schritte Random erzeugen Java Basics - Anfänger-Themen 28
D Erste Schritte Random Java Basics - Anfänger-Themen 79
Z Problem mit "Random" in Java Java Basics - Anfänger-Themen 12
Z Array-Index einmalig je mit Random füllen Java Basics - Anfänger-Themen 7
J Wie lege ich eine durch Random ausgesuchte Zahl in ein Array? Java Basics - Anfänger-Themen 3
F Erste Schritte Random Zahl auswählen Java Basics - Anfänger-Themen 7
J Methoden Math.random unklar Java Basics - Anfänger-Themen 4
N java.util.Random - Zwei Zahlen mit festgesetzter Wahrscheinlichkeit? Java Basics - Anfänger-Themen 15
Thorwine Erste Schritte Wuerfelspiel mit Math.random() Java Basics - Anfänger-Themen 10
S Math.random() Zufall ? Java Basics - Anfänger-Themen 2
S Random Plattformen erstellen Java Basics - Anfänger-Themen 7
C Erste Schritte Random Wert auslesen und ausgeben Java Basics - Anfänger-Themen 2
H Ist Math.Random() eine Methode oder ein Methodenaufruf (Klausurfrage) Java Basics - Anfänger-Themen 4
I Random Ergebnis ausgeben und Gewinner ausgeben. Java Basics - Anfänger-Themen 3
I Spieler Name eintragen und Random Gewinner Java Basics - Anfänger-Themen 4
A Random String in TextView (Android)? Java Basics - Anfänger-Themen 2
V Random Java Basics - Anfänger-Themen 2
X Problem mit Math.random() Java Basics - Anfänger-Themen 2
S Random IDs immer 10-stellig? Wie? Java Basics - Anfänger-Themen 5
T Random vs. Math.random() Java Basics - Anfänger-Themen 2
R Schaffe es nicht Random-Programmierung zu vollenden. Wo liegt der Fehler in diesem Code? Java Basics - Anfänger-Themen 13
Y Random-Objekt und Swing Java Basics - Anfänger-Themen 4
B Verstehe ZufallInt = (int) (Math.random() * 5 + 1); nicht Java Basics - Anfänger-Themen 9
K Doppelte namen bei random Java Basics - Anfänger-Themen 3
K Einfacher random namen weitergeben Java Basics - Anfänger-Themen 4
B Hilfe bei Greenfoot ( random blickrichtung + vor(); Java Basics - Anfänger-Themen 10
B Variablen Mehrere Zahlen mit unterschiedlicher Wahrscheinlichkeit mit Random auswählen Java Basics - Anfänger-Themen 17
M Random bereich und for schleife Java Basics - Anfänger-Themen 20
Jagson Dotcom Spiel - Dots Random setzen Java Basics - Anfänger-Themen 8
R java.util.Random Java Basics - Anfänger-Themen 8
T Zufallserzeugung mit math.random und speichern in array Java Basics - Anfänger-Themen 29
J Woher kommt das Objekt "Math" bei Math.random(); ? Java Basics - Anfänger-Themen 3
P Typecasting für Ganzzahlige Zufallszahl (Math.random) Java Basics - Anfänger-Themen 2
I Zwei Mal das selbe Objekt per Random :( Java Basics - Anfänger-Themen 7
E Random Java Basics - Anfänger-Themen 7
Q Random Funktion JButtons Java Basics - Anfänger-Themen 6
E Variable neue Random Zahl zuweisen, wenn Button geklickt Java Basics - Anfänger-Themen 5
J Bedeutung von math.random() math.round() Java Basics - Anfänger-Themen 7
K ArrayList random füllen Java Basics - Anfänger-Themen 2
K random problem Java Basics - Anfänger-Themen 3
F Problem Math.random in for-Schleife Java Basics - Anfänger-Themen 8
R (Math.random()*49) zahl darf aber nur einmal gezogen werden Java Basics - Anfänger-Themen 11
B Random() gleiche Zahlen ausschließen Java Basics - Anfänger-Themen 30
T Buttons (auf denen bilder sind) random vertauschen Java Basics - Anfänger-Themen 11
C math.random() Java Basics - Anfänger-Themen 9
R math.random wertebereich 16-21 Java Basics - Anfänger-Themen 3
B Math.random und Strings Java Basics - Anfänger-Themen 13
R Java Random Java Basics - Anfänger-Themen 13
G Zahl erstellen / Random Java Basics - Anfänger-Themen 12
J Random Java Basics - Anfänger-Themen 11
radiac Datentypen RANDOM-punkt setzen INNERHALB eines BEREICHes Java Basics - Anfänger-Themen 2
M Zufallszahlen mit Random Java Basics - Anfänger-Themen 4
K Random Zahlen in ein Feld Java Basics - Anfänger-Themen 4
N java.util.Random Java Basics - Anfänger-Themen 6
Luk10 math.random() Java Basics - Anfänger-Themen 2
walker23m Datentypen Zufällig umsortieren einer Hashmap(random?) Java Basics - Anfänger-Themen 3
M Junit TestCase für Random() Zahlen Java Basics - Anfänger-Themen 6
S Random zahlen mit unter und obergrenze Java Basics - Anfänger-Themen 3
D Problem mit Set, Stack und Random Java Basics - Anfänger-Themen 2
S Skatblatt darstellen durch Random? Java Basics - Anfänger-Themen 48
C Bereich festelgen bei Random Java Basics - Anfänger-Themen 9
H Random-Zahlen Java Basics - Anfänger-Themen 7
T random-methode Java Basics - Anfänger-Themen 18
M Random in Swing Java Basics - Anfänger-Themen 24
J Math.random() - kurze frage. Java Basics - Anfänger-Themen 20
J Random Wertebereich Java Basics - Anfänger-Themen 2
B Frage zu Random Java Basics - Anfänger-Themen 21
chik klasse random() Java Basics - Anfänger-Themen 6
B Random Zahlen und Formatierung Java Basics - Anfänger-Themen 6
G Random Zahlen Java Basics - Anfänger-Themen 25
S Diashoow Random Java Basics - Anfänger-Themen 4
G Switch-Case harmoniert nicht mit Random-Zahl Java Basics - Anfänger-Themen 3
Spin 4 stellige random zahl erzeugen Java Basics - Anfänger-Themen 4
G random mit tendenz? Java Basics - Anfänger-Themen 8
hedges Würfelwurf mit java.util.Random ohne 0 Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben