myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Rund um die Programmierung » [erledigt] Wie programmiere ich einen performanten Bruteforce-Algorithmus?
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

[erledigt] Wie programmiere ich einen performanten Bruteforce-Algorithmus?

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Jonas007 Jonas007 ist männlich
myCSharp.de-Mitglied

Dabei seit: 18.01.2020
Beiträge: 19
Entwicklungsumgebung: Visual Studio 2017
Herkunft: Österreich


Jonas007 ist offline

[erledigt] Wie programmiere ich einen performanten Bruteforce-Algorithmus?

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo liebe Community,

Ich habe bereits einen eher schlechten Brute Force Algorithmus programmiert, der ein Array so lange "mischt", bis es sortiert ist. Jedoch möchte ich jetzt einen guten Brute Force Sortieralgorithmus schreiben, welcher nicht zufällig mischt, sondern nacheinander alle Möglichkeiten, die es gibt probiert.
Ich habe es bereits mit vielen Ansätzen probiert, jedoch nicht geschafft. Auch im Internet bin ich leider nicht fündig geworden.

Ich hoffe, dass mir jemand weiterhelfen kann!
LG Jonas ;)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Jonas007 am 22.11.2020 14:56.

20.11.2020 19:40 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
T-Virus T-Virus ist männlich
myCSharp.de-Mitglied

Dabei seit: 17.04.2008
Beiträge: 1.661
Entwicklungsumgebung: Visual Studio, Codeblocks, Edi
Herkunft: Nordhausen, Nörten-Hardenberg


T-Virus ist offline Füge T-Virus Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Was ist den dein Ziel?
Sortierung generell gibt es zu Hauf Lösungen im Netz.
Was soll der Zweck eines Brute Force Sortierung sein?
Der Sinn einer Sortierung ist ja, dass man eine bestimmte Reihenfolge haben will.
Wenn du mit Permutation arbeiten willst, dann ergibt das Ziel der Sortierung keinen großen Sinn.
Aber ggf. fehlt uns der Kontext, den du hie nicht erwähnst.

Ansonsten gibt es für nomale Sortierungen genug Lösungen + fertige Lösungen in Array.Sort

T-Virus
20.11.2020 22:18 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Jonas007 Jonas007 ist männlich
myCSharp.de-Mitglied

Dabei seit: 18.01.2020
Beiträge: 19
Entwicklungsumgebung: Visual Studio 2017
Herkunft: Österreich

Themenstarter Thema begonnen von Jonas007

Jonas007 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Mein Ziel ist es Algorithmen besser zu verstehen und einfach etwas zu üben. Ich dachte mir ein Brute Force Algorithmus, sprich einfach alle Lösungen auszuprobieren, sollte einfach sein jedoch schaffe ich es nicht. Ich habe bereits viel effizienter Sortier Algorithmen gesehen, verstanden und selbst programmiert jedoch ist es bedauernd, dass ich so einen scheinbar einfachen Algorithmus nicht schaffe.
21.11.2020 01:12 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.810
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Dein Algorithmus nennt sich  Bogosort (und ist eher als Spaß zu verstehen).
Hast du denn schon den  Bubblesort mal programmiert (denn diesen kann man, gerade in der einfachen Form, als Sortieren über alle Möglichkeiten bezeichnen)?
21.11.2020 09:19 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
JimStark
myCSharp.de-Mitglied

avatar-1005.jpg


Dabei seit: 10.03.2020
Beiträge: 160
Entwicklungsumgebung: Visual Studio 6.0 Enterprise


JimStark ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Jonas007:
Jedoch möchte ich jetzt einen guten Brute Force Sortieralgorithmus schreiben, welcher nicht zufällig mischt, sondern nacheinander alle Möglichkeiten, die es gibt probiert.

Das kannst du mit ein paar Schleifen selber zusammen bauen oder vielleicht hilft das:  Enumerable.Zip Methode
21.11.2020 09:48 Beiträge des Benutzers | zu Buddylist hinzufügen
Jonas007 Jonas007 ist männlich
myCSharp.de-Mitglied

Dabei seit: 18.01.2020
Beiträge: 19
Entwicklungsumgebung: Visual Studio 2017
Herkunft: Österreich

Themenstarter Thema begonnen von Jonas007

Jonas007 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Im Prinzip kann man mein Problem ziemlich vereinfachen: Ich suche eine Methode, welche alle Möglichkeiten einer Liste angibt:

C#-Code:
public static int[,] Combinations(int[] arr)
{
    // Algorithmus
}

Die Augabe sollte dann ein 2D Array (Tabelle) sein, wo nacheinander alle Möglichkeiten der List aufgelistet werden.
Im Grunde genau das, was diese Website, die ich gerade gefunden habe erledigt:  https://www.zum.de/Faecher/Materialien/g...tik/Kombin.html

Bsp:

C#-Code:
int[] arr = new int[3] {1, 2, 3}
int[,] arr2D = Combinations;

// Ausgabe beim Durchlaufen des arr2D:
// 123
//132
//213
//231
//312
//321

Ich hoffe ihr versteht was ich versuche. Und bereits vielen Dank für die zahlreichen Antworten
21.11.2020 14:49 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.810
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

21.11.2020 15:22 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Jonas007 Jonas007 ist männlich
myCSharp.de-Mitglied

Dabei seit: 18.01.2020
Beiträge: 19
Entwicklungsumgebung: Visual Studio 2017
Herkunft: Österreich

Themenstarter Thema begonnen von Jonas007

Jonas007 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Danke dir. Ich bin in diesem Beitrag auf den Johnson Trotter Algorithmus gestoßen, der mein Problem löst. Mit Hilfe dieses Grundalgorithmuses kann ich meine Idee umsetzen.
22.11.2020 14:56 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MrSparkle MrSparkle ist männlich
myCSharp.de-Team

avatar-2159.gif


Dabei seit: 16.05.2006
Beiträge: 5.572
Herkunft: Leipzig


MrSparkle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich verstehe nicht, was das mit Sortierung zu tun haben soll. Sortieren bedeutet ja, die Werte in der Liste in eine bestimmte Reihenfolge zu bringen. Eine Permutation ist doch das genaue Gegenteil.

PS: "ein performanter Bruteforce-Algorithmus" ist eine Tautologie ein Widerspruch*, ich hoffe, das ist dir klar :)

*Danke @witte
22.11.2020 19:01 Beiträge des Benutzers | zu Buddylist hinzufügen
witte
myCSharp.de-Mitglied

Dabei seit: 03.09.2010
Beiträge: 928


witte ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Du meinst Paradoxon und nicht Tautologie oder?
23.11.2020 11:50 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 05.12.2020 22:40