![]() |
Re: Zahl in Array
Schau mal bei
![]() |
Re: Zahl in Array
irgendwei funktionier das von Flare nicht :-\
und von Hagen schon aber da weiß ich noch nicht wie ich das da nach größe sortiere... |
Re: Zahl in Array
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:
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 ;)
for I := High(Count) downto Low(Count) do
... Gruß Hagen |
Re: Zahl in Array
Und wenn du das wieder in ein Zahl Umwandeln möchtest, statt einen String dann geht dies so
Delphi-Quellcode:
Du hast dann keinen String sondern wieder einen Integer als Resulat.
Result := 0;
for I := Low(Count) to High(Count) do while Count[I] > 0 do begin Result := Result * 10 + I; Dec(Count[I]); end; Gruß Hagen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz