2007. 10. 7. 07:11
서로 다른 SWAP 알고리즘 3가지
2007. 10. 7. 07:11 in 소프트웨어/C / C++
소개
자료의 내용을 바꾸는 SWAP 알고리즘은 자주 쓰는 프로그래밍 기법들 중 하나 입니다. 요즘은 기본적으로 제공되긴 하지만, 배워 두면 나중을 위해 좋습니다.
코드
수행 결과
A = 10 B = 20
SWAP_TEMP : A = 20 B = 10
SWAP_XOR : A = 20 B = 10
SWAP_PLUS : A = 20 B = 10
SWAP_TEMP : A = 20 B = 10
SWAP_XOR : A = 20 B = 10
SWAP_PLUS : A = 20 B = 10
설명
- SWAP_XOR 매크로 : 서로의 내용이 다를때만 1이고 같으면 0 이 되는 비트 연산자 입니다. 자료 구조는 정수형이지만, 각 비트당 연산을 수행하므로 XOR 연산이 가능합니다.
- SWAP_TEMP 함수 : call-by-reference 구조로 지역 변수가 저장된 주소를 입력하여 변환을 시도 하므로 값이 바뀌게 됩니다. 가장 간단하게 구현 할수 있는 알고리즘 입니다.
- SWAP_PLUS 함수 덧셈, 뺄셈 연산자 : 이 매크로는 숫자형 자료 일때 간단하게 구현 할수 있는 구조 입니다.
- 기본적으로 속도가 빠르며 별도의 변수도 필요하지 않는 XOR 연산자로 된 SWAP 알고리즘을 선호합니다.
추가 자료, 출처
- C 언어 포인터 완전제패 (Kazuya Maebashi, 영진 닷컴)
- 구글 검색
'소프트웨어 > C / C++' 카테고리의 다른 글
Policies/Binary Compatibility Examples - 이진 호환성 예제 (0) | 2015.11.13 |
---|---|
Policies/Binary Compatibility Issues With C++ (C++ 에서 이진 호환성 문제들) - 2 (0) | 2015.11.12 |
Policies/Binary Compatibility Issues With C++ (C++ 에서 이진 호환성 문제들) - 1 (0) | 2015.11.11 |