Thema: Delphi Arrays vertauschen

Einzelnen Beitrag anzeigen

Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#12

Re: Arrays vertauschen

  Alt 28. Jan 2010, 15:47
Zitat von blink182:
Okay vllt nicht sehr rechenzeit optimiert, dafür weniger speicherplatz

ja das macht wenig Sinn... Muss man halt checken, dass j<>i ist.
Aber selbe zahlen kann man ja trotzdem vertauschen ;-)

11 xor 11 = 00
00 xor 11 = 11
00 xor 11 = 11

aber okay, der dreieckstausch ist da sinnvoller. Ist auch das was man normal macht
Nein und nochmal nein.
Das erste Nein zu "Aber selbe zahlen kann man ja trotzdem vertauschen ;-)"
Bei deiner obigen Darstellung
11 xor 11 = 00
00 xor 11 = 11
00 xor 11 = 11
machst du einen Denkfehler. Tatsächlich wird (wenn j=i ist) folgendes gerechnet.
11 xor 11 = 00
00 xor 00 = 00
00 xor 00 = 00
Das zweite Nein zu "dafür weniger speicherplatz"
Die zusätzliche lokale Variable wird überhaupt nicht angelegt, weil (bei eingeschalteter Optimierung) ein CPU-Register für die Zwischenspeicherung verwendet wird. Auch bei ausgeschalteter Optimierung kostet die zusätzliche Variable im Prinzip keinen Speicherplatz, weil sie auf dem Stack angelegt wird, und der ist (unabhängig von lokalen Variablen) eh' schon vergeben.
Aber : bei ausgeschalteter Optimierung ist (in Bytes gemessen) deine Prozedur deutlich länger und das kostet dann tatsächlich Speicherplatz.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat