보통 대학 들어가서 프로그래밍 수업을 들으면 배우는 가장 기초적인 함수가 바로 스왑 함수일꺼라 생각한다.
C기준으로 코드의 논리를 보면
일단 변수 t를 선언하고 바꾸고자하는 변수값을 t에 임시로 저장하고 덮어쓰기를 한 후에 t값을 다른 변수에 넣지 않냐
그런데 내가 얼마전에 생각해낸 새로운 스왑 방법인데 갤럼들아 어떤지 판단좀 해봐라 물론 c기준이고 다른 언어로는 구현이 될지 안될지는 모름
그럼 간다
일단 변수 a, b 선언 후 임의의 값 1,2를 넣어보자
a=a+b; a=3
b=a-b; b=1
a=a-b; a=2로
값이 변경될꺼라 예상됌.
아직 안돌려봣지만 이게 훨씬 간단하고 메모리도 덜 먹는 방식아니냐
태클 및 이의제기 환영한다
다들 생각좀 말해보셈
C기준으로 코드의 논리를 보면
일단 변수 t를 선언하고 바꾸고자하는 변수값을 t에 임시로 저장하고 덮어쓰기를 한 후에 t값을 다른 변수에 넣지 않냐
그런데 내가 얼마전에 생각해낸 새로운 스왑 방법인데 갤럼들아 어떤지 판단좀 해봐라 물론 c기준이고 다른 언어로는 구현이 될지 안될지는 모름
그럼 간다
일단 변수 a, b 선언 후 임의의 값 1,2를 넣어보자
a=a+b; a=3
b=a-b; b=1
a=a-b; a=2로
값이 변경될꺼라 예상됌.
아직 안돌려봣지만 이게 훨씬 간단하고 메모리도 덜 먹는 방식아니냐
태클 및 이의제기 환영한다
다들 생각좀 말해보셈
레지스터랑 파이프라인
레지스터에 들어갈 크기면 임시객체보다 효율적인방법은 없음 실제로 임시객체는 안생기고 변수에 바인딩 된값만 바꿔침
실제원리는 변수이름을 서로 뒤바꾸는거랑 비슷함
군바리 성님 몇학년에 군대 들어가심? 왤케 아는 게 많아여 ㄷ
저 입대하기 1달전에 c언어 첨배우고 나머지 전부 독학함
나 1학년 듣고 군대간 좁밥이라 저말을 못알아듣겟다 ㅠㅠ
ㄷㄷㄷㄷ그럼 군대에서 저걸 다.... 모던 C++까지....
http://m.yes24.com/Goods/Detail/3858484
전
이책봤는데 잘 나와있음
저 책 그림체 어디서 많이 본건데
그리고 int temp 같은걸 넣지 않고 하는 방법 중에 님이 한거랑 거의 똑같은 방법이 있음
a = a ^ b; b = a ^ b ; a = a ^ b; 이거였나
xor써서 하는방법도있는데 파이프라이닝이 깨져서 더 느릴거임
xor쓰면 overflow는 없지않음?
ㄷㄷㄷㄷㄷㄷ
ㅇㅇ xor쓰는게 오히려 더 느림. 걍 temp 쓰는게나음
입대1달전 독학하고 군대가서열심히하셧나봄..
과정내 데이터 의존성 없는게 좋다