표준 스왑이란 무엇입니까?

컴퓨터 프로그래밍 및 컴퓨터 과학에서 표준 스왑은 두 가지 변수가 값을 교환 해야하는 프로그램의 상황이며, 값이 전송 될 때 세 번째 변수를 생성해야합니다. 표준 스왑은 프로그래밍 패러다임으로, 두 개의 데이터를 교환 해야하는 상황에 적용될 수 있으며 하나의 데이터 유형 또는 프로그래밍 언어에 연결되지 않습니다. 값을 교환 해야하는 프로그램에는 많은 인스턴스가 있지만, 컬렉션의 한 인덱스에서 다른 색인에서 다른 색인을 다른 인덱스로 이동 해야하는 정렬 알고리즘과 함께 사용될 때 컬렉션 및 배열의 ​​표준 구성 요소가 종종 임시 변수를 사용하여 값을 교환하는 값을 유지합니다. 하드웨어 관점에서 표준 스왑은 정수와 같은 일부 스칼라 데이터 유형에 대해 지원되는 저수준 프로세서 기능 일 수 있습니다.

표준 스왑의 개념은 변수 A와 B에서 볼 수 있습니다. 표준 스왑의 끝에서 B는 A와 A와 A와 동일해야합니다. 프로그램이 단순히 B를 A에 할당하면 A의 값이 손실되고 나중에 B에 할당 될 수 없을 것입니다.이를 통해 B의 값을 보유 할 임시 변수를 사용해야합니다. 최종 단계는 B에 임시 변수 값을 할당하는 것입니다.

.

.

표준 스왑에 대한 매우 일반적인 응용 프로그램 중 하나는 배열 또는 컬렉션에서 정렬 알고리즘을 사용할 때입니다. 정렬 알고리즘이 배열 인덱스 1의 데이터를 인덱스 10의 데이터와 교환해야한다고 결정한 경우 데이터의 표준 스왑을 수행 할 수 있습니다. 이것은 c.

와 같은 언어로 포인터 참조를 사용하여 매우 빠르게 수행 할 수 있습니다.

두 객체 인스턴스가 필요할 때 일부 객체 지향 프로그래밍 언어에서 합병증이 발생할 수 있습니다.교체됩니다. 매우 드문 경우에, 단순히 객체 참조를 교체하면 실제 스왑이 시작되지 않습니다. 대신, 객체를 교환하는 유일한 방법은 내부 데이터, 필드 별, 필드, 두 객체와 임시 객체 변수 사이를 복제하는 것입니다.

독점 또는 (XOR) 논리 연산자를 사용하여 표준 스왑을 수행하는 데 기술적으로 사용될 수있는 기술이 있습니다. XOR 스왑은 두 비트가 XOR로 계산되면 기본적으로 연산자 중 하나 또는 둘 다로 반전 될 수있는 마스크를 생성한다는 사실에 의존합니다. 이러한 방식으로, 두 변수 인 A와 B는 먼저 두 변수의 XOR로 마스크를 생성 한 다음 XOR을 사용하여 B의 값을 먼저 마스킹하여 A와 B의 값을 바르면 교체 할 수 있습니다. 불행히도,이 방법은 임시 변수의 생성을 피하기 때문에 A와 B가 서로 동일 할 때 모든 인스턴스를 스왑하고 실제 최적화를 수행 할 수있는 경우는 모두 스왑을 수행 할 수는 없습니다.

다른 언어

이 문서가 도움이 되었나요? 피드백 감사드립니다 피드백 감사드립니다

어떻게 도와 드릴까요? 어떻게 도와 드릴까요?