Bubblesort rückgängig machen


#1
Hallo Community!
Ich weiß, ich habe lange nichts mehr von mir hören lassen, da ich sehr sehr viel zu tun hatte (Und bis jetzt noch keine großen Probleme hatte :D).
Doch jetzt bin ich auf etwas gestoßen, was mir den Kopf zerbricht :(
Ich Arbeite an einem verschlüsslungsalgorithmus. Dieser Arbeitet mit einer Matrix, die an einer Stelle mithilfe des keys sortiert wird. Dabei wird zuerst die erste "Ebene" (Ein Mehrdimensionales Array - als Matrix[]) sortiert und danach die zweiten Ebenen (Matrix [][]).
Das funktioniert auch wunderbar mit diesem Code:
Code:
char[] sorted = new char[this.key.length()] ;
		char help;
		sorted = this.key.toCharArray();
		
		String[] Matrixhelp = new String[this.key.length()];
		String Matrixhelp2 = "";
		
		/* Erste Ebene sortieren */
		for (int i = sorted.length - 1; i > 0; i--)
		{
			for (int j = 0; j < i; j++)
			{
				if (sorted[j]>sorted[j+1])
				{
					help = sorted[j];
					sorted[j] = sorted[j+1];
					sorted[j+1] = help;
					
					Matrixhelp = Matrix[j];
					Matrix[j] = Matrix[j+1];
					Matrix[j+1] = Matrixhelp;
				}
			}
		}
		
		/* Zweite Ebene sortieren */
		for (int m1 = 0; m1 < Matrix.length; m1++)
		{
			sorted = this.key.toCharArray();
			for (int i = sorted.length - 1; i > 0; i--)
			{
				for (int j = 0; j < i; j++)
				{
					if (sorted[j]>sorted[j+1])
					{
						help = sorted[j];
						sorted[j] = sorted[j+1];
						sorted[j+1] = help;
						Matrixhelp2 = Matrix[m1][j];
						Matrix[m1][j] = Matrix[m1][j+1];
						Matrix[m1][j+1] = Matrixhelp2;
					}
				}
			}
		}
Nun habe ich jedoch beim decodieren ein Problem: Wie ihr sieht wird der Key Alphabetisch sortiert und dabei gehen die jeweiligen Elemente mit. Aber ich habe keinen blassen Schimmer, wie ich das umkehre o_O
Theoretisch müsste ich wieder eine Art Bubblesort durchführen, der nur sozusagen ein "Aplphabet" verwendet, bei dem die Buchstaben so eingetragen sind, das sie am Ende wieder in der richtigen Reihnvollge stehen. Aber wie soll ich das umsetzten? Irgendwie gehen muss es ja, denn bei der ADFG(V)X Verschlüsselung wird das ja auch gemacht...
Habt ihr eine Idee?
Danke im Voraus!
 

j2se

Erfahrenes Mitglied
#3
Weshalb verwendest Du nicht bestehende Verschlüsselungsmechanismen, wie z.B. Java ist auch eine Insel: Kapitel 25 Sicherheitskonzepte

Im Übrigen: Falls eine Liste sortiert wird und die Sortierung wieder rückgängig gemacht werden soll, dann muss jedes Element seine Position (in der ursprünglichen Liste) speichern oder man zieht eine Kopie der ursprünglichen Liste.
 
Zuletzt bearbeitet: