AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zahl in Array

Offene Frage von "bonanza"
Ein Thema von bonanza · begonnen am 3. Apr 2006 · letzter Beitrag vom 3. Apr 2006
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: Zahl in Array

  Alt 3. Apr 2006, 21:08
Schau mal bei http://dsdt.info unter Tipps und Algorithmen und BubbleSort. Da findest du nen Sortieralgorithmus, den noch leicht umschreiben und dann passts.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
bonanza

Registriert seit: 13. Sep 2005
134 Beiträge
 
RAD-Studio 2009 Arc
 
#12

Re: Zahl in Array

  Alt 3. Apr 2006, 21:13
irgendwei funktionier das von Flare nicht :-\

und von Hagen schon aber da weiß ich noch nicht wie ich das da nach größe sortiere...
  Mit Zitat antworten Zitat
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, 21: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
Benutzerbild von negaH
negaH

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

Re: Zahl in Array

  Alt 3. Apr 2006, 21:32
Und wenn du das wieder in ein Zahl Umwandeln möchtest, statt einen String dann geht dies so

Delphi-Quellcode:
Result := 0;
for I := Low(Count) to High(Count) do
  while Count[I] > 0 do
  begin
    Result := Result * 10 + I;
    Dec(Count[I]);
  end;
Du hast dann keinen String sondern wieder einen Integer als Resulat.

Gruß Hagen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz