Sortieren von Strings

keydo

Grünschnabel
huhu, :>

ich habe ein Array bestehend aus Zahlen. Diese Zahlen sind sounter und zählen die häufigkeit einer bestimmten Zahl. Wobei das Feld[0] die häufigkeit für 'a' enthält, Feld[1] für 'b'.

Meine Zuordnung der Buchstaben zuf häufigkeit erfolgt via Differenz der Buchstaben 'z' - 'a' in einer for-Schleife.

C++:
for(int i = 0; i <= 'z' - 'a'; i++)
				{
					if(count[i] != 0)									 			
					{
						cout << static_cast<char>('a'+i) << ": " << count[i];
				             
					}
				}

Das Array mit den Zählern ist:
Code:
int count[26];


Nun habe ich das Feld mit den Zählern Sorieren lassen:

C++:
	for(int i = 26; i > 0; i-- )			
	{
		
		for(int k = 0; k < i; k++)				// Schleife für die Einzelvergleiche
		{
			if(count[k] > count[k+1])
			{
								
				
				int t = count[k];

				count[k] = count[k+1];
				
								
				count[k+1] = t;				
				
				
			}
		}
	}

Das hat funktioniert und mein Array ist absteigend sortiert. Nun ist aber schon mein Problem ersichtlich: Wie komme ich nun wieder an meine Zuordnung der Counter zu den entsprechenden Zeichen? :>

Dazu folgt noch mein 2tes Problem. Wenn in dem Array 2 gleiche Zähler auftauchen(sprich 2 Felder die gleiche Anzahl der Counter haben), soll bei der Ausgabe das Zeichen mit den niedrigsten Zeichencode bei der Ausgabe 'L' enthalten und das mit den höchsten Zeichencode ein 'H'.

Es könnte z.B. so aussehen:
Code:
-> "abba cool"
a: 2 (L)    // da a = 62 dezialzahl glaube
b: 2
c: 1
o: 2 (H)
l: 1


Ich sitz da schon und grübel. Beim Bubble-Algo war ich schon stolz das der so n bissel funktioniert... ^^ aber nun häng ich wieder -.-
 
Vorm sortieren musst du das Array sichern (zb in einem 2. array)
sonst bekommst du die werte nicht wieder zurück
 
Zurück