Überprüfen auf Permutation

Sweetsister

Mitglied
Hallo :)

ich habe ein kleines Problem. Ich sitze vor einer Ü-Aufgabe, bei der ich u.a. bei einem gegebenen Array prüfen soll, ob das eine Permutation ist.

Nun dachte ich daran, dass eine Permutation dann eine Permutation ist, wenn es keine Elemente doppelt gibt.

Also würde ich das gegebene Array darauf überprüfen wollen, aber sehe eine umständliche Lösung vor mir.

Mir würde das so vorschweben:

Nimm das Array, speichere das erste Element in einer Hilfsvariablen und schau, ob in dem restlichen Array ein Element gleich ist. Wenn nein, dann speichere das zweite Element auf der Hilfsvariablen und mache das wieder mit dem Array.
Aber das ist nicht wirklich sinnig, oder? Allein die Laufzeit, das wird für ein größeres Array ja riesig.

Wie kann man das denn eleganter lösen?

Grübelnde Grüße
Sandra
 

Marco13

Top Contributor
Das Kriterium stimmt so IMHO nicht. Der Array [1,1,1] ist eine Permutation vom Array [1,1,1]. Genaugenommen gibt es da etliche Permutationen, die zwar alle gleich sind, aber eben doch nur Permutationen. Umgangssprachlich könnte man sagen: Es ist eine Permutation, wenn es die gleichen Elemente enthält (in der gleichen oder einer anderen Reihenfolge).
 

kay73

Bekanntes Mitglied
Wenn sich die Array Elemente sortieren lassen: Array sortieren und für jedes Element prüfen, ob das nächste gleich dem aktuellen ist. Laufzeit O(n log n) fürs Sortieren und O(n) für das Vergleichen.

Im allgemeinen Fall kannst Du auch ein HashSet mitschleppen, jedes getroffene Element auf Existenz im Hash prüfen bzw speichern. So kannst Du auf Kosten des Platzes die Suche beschleunigen.
 
Zuletzt bearbeitet:

Marco13

Top Contributor
... und... was würde man damit genau überprüfen? ???:L Doch nur ob alle Elemente gleich sind...? (Dann braucht man auch nicht zu sortieren :D )
 

kay73

Bekanntes Mitglied
... und... was würde man damit genau überprüfen? ???:L Doch nur ob alle Elemente gleich sind...? (Dann braucht man auch nicht zu sortieren :D )

Der Sinn der Sache ist natürlich, beim ersten Duplikat
Code:
false
zurück zu geben. Alles vorausgesetzt, die merkwürdige "Definition" von Permutation stimmt...
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Überprüfen ob eine Schreibberechtigung auf ein file exisitert bzw. ob man dieses file löschen kann, wie? Java Basics - Anfänger-Themen 9
J Überprüfen ob ein Fenster offen ist? Java Basics - Anfänger-Themen 8
Naxon89 Threads Android AysncTask => Überprüfen, ob ein Ergebniss schon vorliegt Java Basics - Anfänger-Themen 5
H Überprüfen ob String Array leer ist Java Basics - Anfänger-Themen 4
C Überprüfen eines Programms auf Syntaxfehler Java Basics - Anfänger-Themen 3
CptK Überprüfen ob übergebenes Objekt zu Generics passt Java Basics - Anfänger-Themen 2
G Überprüfen ob alle Ziffern von 1-9 in einem Integer vorhanden sind Java Basics - Anfänger-Themen 6
A Überprüfen, ober eine Zahl Ziffer enthält Java Basics - Anfänger-Themen 12
C Überprüfen eines Queltextes auf Syntax-Fehler und Laufzeitfehler Java Basics - Anfänger-Themen 2
K Überprüfen ob Eingabe ein Float ist Java Basics - Anfänger-Themen 4
P Überprüfen ob Mausklick auf Linie ist? Java Basics - Anfänger-Themen 6
J Überprüfen, ob eine 2D Matrix ein Baum ist Java Basics - Anfänger-Themen 5
J Methoden Überprüfen ob Objekt bereits erstellt wurde Java Basics - Anfänger-Themen 2
J Überprüfen ob String eine Zahl ist Java Basics - Anfänger-Themen 2
T Überprüfen, ob Objekt gelöscht wurde Java Basics - Anfänger-Themen 1
G String Elemente auf Zahlen Überprüfen Java Basics - Anfänger-Themen 21
O Überprüfen ob eine Methode ausgeführt wurde Java Basics - Anfänger-Themen 10
C Überprüfen auf Palindrom Java Basics - Anfänger-Themen 12
B Überprüfen von Strings schlägt fehl Java Basics - Anfänger-Themen 5
S Arbeiten mit einer CSV Datei und Überprüfen von einem Datum in einem Textfeldern Java Basics - Anfänger-Themen 4
C Überprüfen, ob Timer läuft Java Basics - Anfänger-Themen 3
C Problem mit Überprüfen einer Eingabe Java Basics - Anfänger-Themen 5
K Überprüfen ob Datei vorhanden Java Basics - Anfänger-Themen 2
G Überprüfen ob einen Array einen Value enthält Java Basics - Anfänger-Themen 13
P Überprüfen, ob String Zeichenfolge enthält Java Basics - Anfänger-Themen 4
T Überprüfen, ob Array Elemente hat Java Basics - Anfänger-Themen 22
I Überprüfen eines Passwortes Java Basics - Anfänger-Themen 5
J Überprüfen ob Leerzeile im String[][] array Java Basics - Anfänger-Themen 2
N Überprüfen ob ein Label angeklickt wurde Java Basics - Anfänger-Themen 3
P Methode zum Überprüfen ob Datei verwendet wird? Java Basics - Anfänger-Themen 3
G Überprüfen wann ein Dokument abläuft? Java Basics - Anfänger-Themen 3
C Überprüfen, ob die eingabe auch buchstaben enthält Java Basics - Anfänger-Themen 6
G Überprüfen ob es ein Link existiert Java Basics - Anfänger-Themen 3
S Überprüfen, ob Tabelle existiert Java Basics - Anfänger-Themen 5
M Überprüfen ob die eingaben in einem JTextField eine Zahl ist Java Basics - Anfänger-Themen 5
H Überprüfen ob Request mit enctype=multipart/form-data Java Basics - Anfänger-Themen 2
V Permutation, Verschlüsselung Java Basics - Anfänger-Themen 19
S Permutation Java Basics - Anfänger-Themen 6
S Methoden Effiziente Permutation? Guter Permutationsalgorithmus? Java Basics - Anfänger-Themen 1
N String permutation Java Basics - Anfänger-Themen 2
P Permutation Java Basics - Anfänger-Themen 7
tanja Klasse Permutation Java Basics - Anfänger-Themen 3
S Permutation Rekusiv Java Basics - Anfänger-Themen 5
nadoria Permutation ohne Rekursion Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben