Hvad er en standardbytte?

I computerprogrammering og datalogi er en standard swap en situation i et program, hvor to variabler skal udveksles, og kræver oprettelse af en tredje variabel for at fungere som mellemmand, når værdierne overføres. Et standard swap er et programmeringsparadigme, hvilket betyder, at det kan anvendes i enhver situation, hvor to dataoplysninger skal udveksles, og ikke er 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 elementer fra et indeks i samlingen til en anden ved hjælp af en midlertidig variabel til at holde værdi, der udskiftes. Fra et hardwareperspektiv kan en standardudskiftning være en understøttet lavt niveau processorfunktion for nogle skalære datatyper, såsom heltal, hvilket betyder, at mellemværdien ikke behøver at oprettes i RAM-hukommelse (random access) (RAM) for at skifte to numre.

Begrebet et standard swap kan ses med variablerne A og B; i slutningen af ​​en standardbytte skal B være lig med A, og A skal være lig B. Hvis et program blot tildeler B til A, vil værdien af ​​A gå tabt og kan ikke senere tildeles B. Dette kræver brug af en midlertidig variabel, der vil indeholde værdien af ​​A, mens B er tildelt A. Det sidste trin er at tildele den midlertidige variabelværdi til B, hvor swap'en afsluttes.

Et meget almindeligt program til en standardbytte er, når du bruger en sorteringsalgoritme på en matrix eller samling. Hvis en sorteringsalgoritme har bestemt, at dataene i array Index 1 skal udskiftes med dataene ved Index 10, kan en standard swap af dataene udføres. Dette kan gøres usædvanligt hurtigt ved hjælp af markørreferencer på sprog som C.

En komplikation kan forekomme i nogle objektorienterede programmeringssprog, når to objektforekomster skal udskiftes. I nogle meget sjældne tilfælde vil simpelthen ved at udskifte objektreferencer ikke starte en faktisk swap. I stedet er den eneste måde at udveksle objekter på at klone de interne data, felt for felt, mellem de to objekter og den midlertidige objektvariabel.

Der er en teknik, der teknisk kan bruges til at udføre en standardbytte ved hjælp af den eksklusive eller (XOR) logiske operatør. En XOR-swap afhænger af det faktum, at når to bits beregnes med XOR, skaber de i det væsentlige en maske, der kan vendes med en eller begge af operatørerne. På denne måde kan to variabler, A og B, byttes ved først at oprette en maske med en XOR af de to variabler, derefter bruge XOR til at afmagre først værdien for B og derefter værdien for A. Desværre, selvom denne metode undgår oprettelsen af ​​en midlertidig variabel, vil den heller ikke foretage en swap i alle tilfælde, specifikt når A og B er ens med hinanden, og i tilfælde, hvor compileroptimering kan ændre den aktuelle operation.

ANDRE SPROG

Hjalp denne artikel dig? tak for tilbagemeldingen tak for tilbagemeldingen

Hvordan kan vi hjælpe? Hvordan kan vi hjælpe?