Skip to main content

Hvad er en standardbytte?

I computerprogrammering og datalogi er en standardbytte en situation i et program, hvor to variabler skal have deres værdier udvekslet, hvilket kræver oprettelse af en tredje variabel for at fungere som en formidler, når værdierne overføres.En standardbytte er et programmeringsparadigme, hvilket betyder, at det kan anvendes til enhver situation, hvor to stykker data skal udveksles, og er ikke bundet til nogen datatype eller programmeringssprog.Der er mange tilfælde i programmer, hvor værdier skal udskiftes, men det er ofte en standardkomponent i samlinger og arrays, når de bruges med sorteringsalgoritmer, der skal flytte genstande fra et indeks i samlingen til en anden, ved hjælp af en midlertidig variabel til at holde denværdi, der bliver byttet.Fra et hardware-perspektiv kan et standardbytte være en understøttet processorfunktion på lavt niveau for nogle skalære datatyper, såsom heltal, hvilket betyder, at mellemværdien ikke behøverKonceptet med en standardbytte kan ses med variablerne A og B;Ved afslutningen af et standardbytning skal b svare til A, og A skal svare til B. Hvis et program simpelthen tildeler B til A, vil værdien af A gå tabt og kan ikke senere tildeles B. Dette kræver brug af AMidlertidig variabel, der vil have værdien af et stykke tid B, er tildelt A. Det sidste trin er at tildele den midlertidige variabel værdi til B, at afslutte swap.

En meget almindelig applikation til en standardbytte er, når du bruger en sorteringsalgoritme påen matrix eller samling.Hvis en sorteringsalgoritme har bestemt, at dataene ved Array Index 1 skal byttes med dataene ved indeks 10, kan der udføres en standardbytte af dataene.Dette kan gøres usædvanligt hurtigt ved hjælp af pointerreferencer på sprog som C.

En komplikation kan forekomme på et eller andet objektorienterede programmeringssprog, når to objektforekomster skal byttes.I nogle meget sjældne tilfælde vil blot at bytte objektreferencerne ikke starte en faktisk swap.I stedet er den eneste måde at udveksle objekterne på at klone de interne data, felt for felt, mellem de to objekter og den midlertidige objektvariabel.

Der er en teknik, der teknisk set kan bruges til at udføre en standardbytte ved hjælp af den eksklusive-eller (xor) logisk operatør.En XOR -swap er afhængig af det faktum, at når to bit beregnes med XOR, vil de i det væsentlige skabe en maske, der kan vendes med en eller begge af operatørerne.På denne måde kan to variabler, A og B, udskiftes ved førstOprettelsen af en midlertidig variabel, det vil heller ikke gøre et bytte i alle tilfælde, specifikt når A og B er lig med hinanden og i tilfælde, hvor kompilatoroptimering kan ændre den faktiske drift.