Hva er en standardbytte?
I dataprogrammering og informatikk er en standardbytte en situasjon i et program der to variabler trenger å få verdiene sine utvekslet, noe som krever å opprette en tredje variabel for å fungere som en mellomledd når verdiene overføres. En standardbytte er et programmeringsparadigme, noe som betyr at det kan brukes på enhver situasjon der to datastykker må byttes, og ikke er bundet til noen datatype eller programmeringsspråk. Det er mange forekomster i programmer der verdier må byttes, men det er ofte en standardkomponent i samlinger og matriser når de brukes med sorteringsalgoritmer som må flytte elementer fra en indeks i samlingen til en annen, ved å bruke en midlertidig variabel for å holde verdien som blir byttet. Fra et maskinvareperspektiv kan en standardbytte være en støttet prosessorfunksjon på lavt nivå for noen skalar datatyper som heltall, noe som betyr at mellomverdien ikke trenger å opprettes i Random Access Memory (RAM) for å bytte to tall.
Konseptet med en standardbytte kan sees med variablene A og B; På slutten av en standardbytte skal B være lik a, og A bør være lik B. Hvis et program bare tildeler B til A, vil verdien av A gå tapt og ikke kan tilordnes B. Dette krever bruk av en midlertidig variabel som vil holde verdien på en stund B er tilordnet A. Det endelige trinnet er å tilordne den midlertidige variabelen til B, fullføring av SWAP. tilordne den midlertidige variabelen som vil holde verdien til B, fullfør av.
En veldig vanlig applikasjon for en standardbytte er når du bruker en sorteringsalgoritme på en matrise eller samling. Hvis en sorteringsalgoritme har bestemt at dataene i Array Index 1 må byttes med dataene ved indeks 10, kan en standard bytte av dataene utføres. Dette kan gjøres usedvanlig raskt ved å bruke pekerreferanser på språk som c.
En komplikasjon kan oppstå i noen objektorienterte programmeringsspråk når to objektforekomster trengerbli byttet. I noen veldig sjeldne tilfeller vil bare å bytte objektreferansene ikke sette i gang en faktisk bytte. I stedet er den eneste måten å utveksle objektene på å klone de interne dataene, felt etter felt, mellom de to objektene og den midlertidige objektvariabelen.
Det er en teknikk som teknisk sett kan brukes til å utføre en standard bytte ved hjelp av den eksklusive eller (XOR) logiske operatøren. En XOR -bytte er avhengig av at når to biter beregnes med XOR, vil de i hovedsak lage en maske som kan reverseres med en eller begge operatørene. På denne måten kan to variabler, A og B, byttes ved først å lage en maske med en XOR av de to variablene, deretter ved å bruke XOR for å avdekke verdien for B og deretter verdien for A. Dessverre, selv om denne metoden unngår å skape en midlertidig variabel, vil den heller ikke gjøre en bytte i alle tilfeller, spesifikt når det er mulig.