ํํ ์๋ฆฌ ๋ฐ๊พธ๊ธฐ ํจ์๋ผ๊ณ ํ์ฃ .
Swapํจ์์ ์์ค๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญํ์ฌ(์ด์
๋ธ) ํด์ํด๋ณด๊ฒ ์ต๋๋ค.
์ด์
๋ธ๋ฆฌ ์ฝ๋๋ก ์์ค ๊ณต๋ถ๋ฅผ ํ๋ฉด ์ข์ ์ ์,
๋ค์๊ณผ ๊ฐ๋ค.
1. ์ด์
๋ธ๋ฆฌ ๊ณต๋ถ๊ฐ ๋๋ค.
2. C์ธ์ด ํฅ์์ ๋์์ด ๋๊ณ , ๊น๊ฒ ๊ณต๋ถํ ์ ์๋ค.
3. ๋ณต์กํ๊ฒ ๊ธฐ๊ณ์ด๋ก ๋ฐ๋๋ ๋ถ๋ถ์ ๋ ํจ์จ์ ์ธ ์ฝ๋๋ฅผ ๋ณ๊ฒฝ ํ ์ ์๊ฒ ๋๋ค.
๋จผ์ Swapํจ์ ์ฝ๋๋ฅผ ์ดํด๋ณด๋ฉด ์๋์ ๊ฐ๋ค.
#include<stdio.h>
//temp๋ฅผ ์ด์ฉํ์ฌ a์ b์ ๊ฐ์ ์๋ก ๋ฐ๊พธ๊ธฐ
void Swap(int* pa, int* pb)
{
int temp = *pa; // start(*pa) = 96, end(*pb)=5;
*pa = *pb; //start(*pa) = 5, end(*pb)=5;
*pb = temp; //start(*pa)= 5, end(*pb) = 96;
}
void main() {
int start = 96, end = 5;
printf("before : start = %d, end = %d\n", start, end);
if (start > end) {
Swap(&start, &end);//๊ฐ์ด ์๋ ์ฃผ์๋ฅผ ๋ณด๋ด์ค๋ค.
}
printf("after : start = %d, end = %d\n", start, end);
}
์ ์์ค์ฝ๋๋ฅผ ์ด์
๋ธ๋ฆฌ ๋ช
๋ น์ผ๋ก ํ์ธํด๋ณด์.
์ด์
๋ธ๋ฆฌ ๋ช
๋ น์ด ํ์ธํ๋ ๋ฐฉ๋ฒ
1. ์ฝ๋ ์์ ๋ธ๋ ์ดํฌ ํฌ์ธํธ ๊ฑธ๊ธฐ.
2. ๋๋ฒ๊ทธ -> ๋๋ฒ๊น
์์
3. ๋๋ฒ๊ทธ ํฌ์ธํธ๊ฐ ๊ฑธ๋ฆฐ๋ค.
4. ๋ง์ฐ์ค ์ฐํด๋ฆญ -> ๋์ค์ด์
๋ธ๋ก ์ด๋
5. ์ด์
๋ธ๋ฆฌ ์์ค ํ์ธ ๊ฐ๋ฅ
์๋๋ Swapํจ์ ๋ช
๋ น
mainํจ์
main๊ณผ swap์ ๋ฉ๋ชจ๋ฆฌ ์์น๋ ๋ค๋ฅด๊ณ ๋ด์ฉ๋ ๋ค๋ฅด๋ค.
์๋ก bp์ sp ๋ฅผ ์ด์ฉํ์ฌ ์์น๋ฅผ ๋ณ๊ฒฝํด๊ฐ๋ฉฐ ๊ฐ์ ์ฐ์ฐํ๊ณ ์๋ค.
๋๋ฌด 100%์๋ฒฝํ ํด์ํ๊ณ ์ ํ ํ์๋ ์๊ณ ,
ํ๋ฆ๊ณผ ๊ฐ ๊ฐ์ด ๋ค์ด๊ฐ๋ ๋ถ๋ถ์ ์ฐพ์ ์ ์๋ ์ ๋๋ก ๊ณต๋ถํด๋ ๊ด์ฐฎ์ ๊ฒ ๊ฐ๋ค.. (์ด๋ณด์ ์
์ฅ์์ !!)
์์ธํ ํด์ํด๋ณด๊ณ ์ถ๋ค๋ฉด, ์ด์
๋ธ๋ฆฌ์ ๋ํ ์ดํด๊ฐ ์กฐ๊ธ ํ์ ํ ์ ์์ผ๋ ์๋ ๊ธ์ ์ฐธ๊ณ ํ๊ธธ ๋ฐ๋๋ค.
lucete1230-cyberpolice.tistory.com/category/%EC%96%B8%EC%96%B4%20%EA%B3%B5%EB%B6%80/%EC%96%B4%EC%85%88%EB%B8%94%EB%A6%AC%EC%96%B4