tag:blogger.com,1999:blog-6314876008291942531.post9004304738466040873..comments2024-01-14T00:36:43.430-08:00Comments on Antonio Gulli's coding playground: easy one: swap 2 variables with no tmpUnknownnoreply@blogger.comBlogger1125tag:blogger.com,1999:blog-6314876008291942531.post-30219726111803203422011-11-23T13:28:40.187-08:002011-11-23T13:28:40.187-08:001) XOR:
a = a xor b
b = a xor b...1) XOR:<br /> <br /> a = a xor b<br /> b = a xor b<br /> a = a xor b<br /><br /> this is based on the same trick used to draw a line on a picture and remove it without store the overwritten pixels.<br /><br />2) Somme e sottrazioni:<br /> a = a + b;<br /> b = a - b;<br /> a = a - b;<br /><br />3) Una linea:<br /> b=(a+b)-(a=b);<br /><br />4) Ricorsivo:<br /><br />void swap( int& a, int& b) {<br />if( a < b ) {<br /> --b;<br /> swap(a, b);<br /> ++a;<br />} else if( a > b ) { <br /> --a;<br /> swap( a,b );<br /> ++b;<br />}<br />}<br /><br />bo non me ne vengono altri<br /><br />Ovviamente non si considerano self swap o problemi di overflowGaetanohttps://www.blogger.com/profile/03637292910769902384noreply@blogger.com