Thema: Delphi Zahl in Array

Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#13

Re: Zahl in Array

  Alt 3. Apr 2006, 22:27
Sorry mann, aber ES IST schon sortiert. Defakto musst du garnichts sortieren in diesem Fall, und brauchst keinen Bubblesort oder ähnliches.

Schau die Sache ist doch ganz einfach:

deine Zahl 123456441 besteht aus 8 Ziffern -> 1,2,3,4,5,6,4,4,1 richtig ? Nun zählen wir einfach alle diese Ziffern, wir berechnen deren Anzahl. Das machen wir indem wir einfach die Ziffern als Index in ein Array[0..9] benutzen.

Count[0] = 0;
Count[1] = 2; weil zwei Einsen vorkommen
Count[2] = 1; weil eine Zwei vorkommt
Count[3] = 1; weil eine Drei vorkommt
Count[4] = 3; weil drei Vieren vorkommmen
Count[5] = 1; weil eine Fünf vorkommt
Count[6] = 1; weil eine Sechs vorkommt
Count[7] = 0;
Count[8] = 0;
Count[9] = 0; weil keine 7,8,9 vorkommen.

Nun gehen wir einfach das Array Count[] von unten nach oben durch, also von 0 bis 9 und bauen den String zusammen

'11' + '2' + '3' + '444' + '5' + '6' -> '112344456' weil

2* die '1'
1* die '2'
1* die '3'
3* die '4'
1* die '5'
1* die '6'

kommen im array Count[] vor.

Willst du das andersrum sortiert haben -> '65444321' dann gehst du das Array Count eben einfach von Oben nach Unten in der Schleife durch:

Delphi-Quellcode:
  for I := High(Count) downto Low(Count) do
   ...
fertig. Du musst also im Grunde garnichts sortieren, noch brauchst du viel an Speicher, das Einzigste was du ge-brauchen musst ist dein Hirn, und das Wissen das man manche Dinge auch ohne Bubblesort oder andere komplizierte Techniken lösen kann

Gruß Hagen
  Mit Zitat antworten Zitat