๋ฒ๋ธ ์ ๋ ฌ์ด๋ ์์ ์๋ ๊ฐ๊ณผ ๋น๊ตํด์ ์์น๋ฅผ ๋ฐ๊ฟ์ฃผ๋ ์ ๋ ฌ ๋ฐฉ๋ฒ์ด๋ค.
์ ํ ์ ๋ ฌ์ ์ ์ผ ์์ ๊ฐ์ ์ฐพ์์ ์์ ๊ฐ์ ธ๋ค ๋๋ ์์ผ๋ก ์ ๊ฐ๋๋ค๋ฉด,
๋ฒ๋ธ ์ ๋ ฌ์ ์ ์ผ ํฐ ๊ฐ์ ์ ์ฐจ ๋ค๋ก ์ ๋ฐฐ๋ณด๋ด๋ ์์ผ๋ก ์ ๊ฐ๋๋ค.
์๋ํ๋ฉด ์ฒซ ๋ฐฐ์ด๊ฐ๋ถํฐ ์ผ๊ด๋๊ฒ ๋ฐ๋ก ์(๋ค)์ ์๋ ๋ฐฐ์ด๊ฐ๊ณผ ๋น๊ตํด์ ํฐ ๊ฐ์ ๋ค๋ก ๋ฌผ๋ฌ๋๋๋ก ์ค์์น๋ฅผ ๋ฐ๋ณตํ๊ธฐ ๋๋ฌธ์ด๋ค.
2 6 4 9 8 1 3 5 7 ๋ผ๋ 9๊ฐ์ ์ซ์๋ฅผ ํ ๋ฐฐ์ด์ ๋ด๊ณ ๋ฒ๋ธ ์ ๋ ฌ์ ํ์ฉํด ์ค๋ฆ์ฐจ์์ผ๋ก ๋ฐ๊พธ๋ ์๋ฎฌ๋ ์ด์ ์ ํด๋ณด์.
์ ์ผ ์ ์ซ์๋ฅผ 0๋ฒ์งธ ์ธ๋ฑ์ค, ๋ง์ง๋ง ์ซ์๋ฅผ 8๋ฒ์งธ ์ธ๋ฑ์ค๋ผ ๊ฐ์ ํ๋ค.
2 6 4 9 8 1 3 5 7 //2์ 6์ ๋น๊ตํ๋ค. (2๊ฐ ๋ ์์, ๊ทธ๋๋ก)
2 6 4 9 8 1 3 5 7 //6๊ณผ 4๋ฅผ ๋น๊ตํ๋ค.
2 4 6 9 8 1 3 5 7 //4๊ฐ 6๋ณด๋ค ์์ผ๋ฏ๋ก ์์น๋ฅผ ๋ฐ๊พผ๋ค.
2 4 6 9 8 1 3 5 7 //6๊ณผ 9๋ฅผ ๋น๊ตํ๋ค. (6์ด ๋ ์์, ๊ทธ๋๋ก) : ์ฌ๊ธฐ๋ถํฐ 9๋ ๋งค๋ฒ ๋น๊ต๋์์ด ๋๋ค. ์ ์ผ ํฌ๊ธฐ ๋๋ฌธ์
2 4 6 9 8 1 3 5 7 //9์ 8์ ๋น๊ตํ๋ค.
2 4 6 8 9 1 3 5 7 //8์ด 9๋ณด๋ค ์์ผ๋ฏ๋ก ์์น๋ฅผ ๋ฐ๊พผ๋ค.
2 4 6 8 9 1 3 5 7 //9์ 1๋ฅผ ๋น๊ตํ๋ค.
2 4 6 8 1 9 3 5 7 //1์ด 9๋ณด๋ค ์์ผ๋ฏ๋ก ์์น๋ฅผ ๋ฐ๊พผ๋ค.
2 4 6 8 1 9 3 5 7 //3๊ณผ 9๋ฅผ ๋น๊ตํ๋ค.
2 4 6 8 1 3 9 5 7 //3์ด 9๋ณด๋ค ์์ผ๋ฏ๋ก ์์น๋ฅผ ๋ฐ๊พผ๋ค.
2 4 6 8 1 3 9 5 7 //9์ 5๋ฅผ ๋น๊ตํ๋ค.
2 4 6 8 1 3 5 9 7 //5๊ฐ 8๋ณด๋ค ์์ผ๋ฏ๋ก ์์น๋ฅผ ๋ฐ๊พผ๋ค.
2 4 6 8 1 3 5 9 7 //9์ 7์ ๋น๊ตํ๋ค.
2 4 6 8 1 3 5 7 9 //7์ด ๋ ์์ผ๋ฏ๋ก ์์น๋ฅผ ๋ฐ๊พผ๋ค. ๋น๋ก์ ๊ฐ์ฅ ํฐ ๊ฐ์ธ 9๊ฐ ์ ์ผ ๋ค๋ก<i=0์ผ๋, for๋ฌธ(8-i)๋ง๋ฌด๋ฆฌ>
์ด์ค ํฌ๋ฌธ i์ j ํฌ์ง์ ์ ์๋์ ๊ฐ๋ค.
for (int i = 0; i < 8; i++) //์๊ณผ ๋ค๋ฅผ ๋น๊ตํ๋ ์์ด๋ค๋ณด๋ i๋ฅผ ์ซ์๊ฐฏ์-1๋งํผ๋ง ๋๋ฆฌ๋ฉด ๋๋ค. <8๋ก ํด๋ ์ถฉ๋ถ
{
for (int j = 0; j < 8 - i; j++) //์ซ์ 9๊ฐ๋ฉด 8๋ฒ๋ง ๋น๊ต, ๋ง์ง๋ง ์ซ์๊ฐ 2๊ฐ๋จ์ผ๋ฉด 1๋ฒ๋ง ๋น๊ตํ๋ฉด OK์ด๋ฏ๋ก
{
}
}
............์ด์ด์ 8๋ฒ์งธ ์ธ๋ฑ์ค(9)๋ฅผ ์ ์ธํ๊ณ 7๋ฒ ๋น๊ต๋ฅผ ์คํํด์ฃผ๋ฉด ๋๋ค..........................<i=1 for๋ฌธ(8-i) ๋ง๋ฌด๋ฆฌ>
๊ฒฐ๊ณผ๋
2 4 6 1 3 5 7 8 9 ๊ฐ ๋ ๊ฒ์ด๋ค.
............์ด์ 7,8๋ฒ์งธ ์ธ๋ฑ์ค ์ ์ธ(8,9)ํ๊ณ 6๋ฒ ๋น๊ต๋ฅผ ์คํํด์ฃผ๋ฉด ๋๋ค....................<i=2 for๋ฌธ(8-i) ๋ง๋ฌด๋ฆฌ>
๊ฒฐ๊ณผ๋
2 4 6 1 3 5 7 8 9 ๊ฐ ๋ ๊ฒ์ด๋ค.
..............์ด์ 6,7,8๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ์ ์ธ(7,8,9)ํ๊ณ 5๋ฒ ๋น๊ต ์คํํด์ฃผ๋ฉด ๋๋ค................<i=3 for๋ฌธ(8-i) ๋ง๋ฌด๋ฆฌ>
๊ฒฐ๊ณผ๋
2 4 1 3 5 6 7 8 9 ๊ฐ ๋ ๊ฒ์ด๋ค.
............์ด์ 5,6,7,8๋ฒ์งธ ์ธ๋ฑ์ค(6,7,8,9) ์ ์ธํ๊ณ 4๋ฒ ๋น๊ต๋ฅผ ์คํํด์ฃผ๋ฉด ๋๋ค..............<i=4 for๋ฌธ(8-i) ๋ง๋ฌด๋ฆฌ>
๊ฒฐ๊ณผ๋
2 4 1 3 5 6 7 8 9 ๊ฐ ๋ ๊ฒ์ด๋ค.
.............์ด์ 4,5,6,7,8๋ฒ์งธ ์ธ๋ฑ์ค(5,6,7,8,9) ์ ์ธํ๊ณ 3๋ฒ ๋น๊ต๋ฅผ ์คํํด์ฃผ๋ฉด ๋๋ค............<i=5 for๋ฌธ(8-i) ๋ง๋ฌด๋ฆฌ>
๊ฒฐ๊ณผ๋
2 1 3 4 5 6 7 8 9 ๊ฐ ๋ ๊ฒ์ด๋ค.
..............์ด์ 3,4,5,6,7,8๋ฒ์งธ ์ธ๋ฑ์ค(4,5,6,7,8,9) ์ ์ธํ๊ณ 2๋ฒ ๋น๊ต ์คํํด์ฃผ๋ฉด ๋๋ค........<i=6 for๋ฌธ(8-i) ๋ง๋ฌด๋ฆฌ>
๊ฒฐ๊ณผ๋
2 1 3 4 5 6 7 8 9 ๊ฐ ๋ ๊ฒ์ด๋ค.
.............์ด์ 2,3,4,5,6,7,8๋ฒ์งธ ์ธ๋ฑ์ค(3,4,5,6,7,8,9) ์ ์ธํ๊ณ 1๋ฒ ๋น๊ต ์คํํด์ฃผ๋ฉด ๋๋ค......<i=7 for๋ฌธ(8-i) ๋ง๋ฌด๋ฆฌ>
๊ฒฐ๊ณผ๋
1 2 3 4 5 6 7 8 9 ๊ฐ ๋ ๊ฒ์ด๋ค.<๋><๋์ด์ ๋น๊ตํ ํ์ ์๋ค.><i๊ฐ 0์์ 7์ด ๋ ๋๊น์ง... ์ฌ๋๋ฒ์งธ for๋ฌธ ๋ง๋ฌด๋ฆฌ>
ํต์ฌ: N๊ฐ์ ์ซ์๊ฐ ์์ ๋, ์์์ ๋น๊ตํ๋ ํ์๋ N-1ํ๋ฉด ์ถฉ๋ถํ๋ค.
N๊ฐ ๋ฐฐ์ด์์ ๋ฒ๋ธ ์ ๋ ฌ์ ํ๋ ค๋ฉด
๋๋ฒ์งธ for๋ฌธ(j)์์ ๋น๊ต์ฐ์ฐ์ (N-1)๋ฒ ๋ถํฐ 1๋ฒ๊น์ง ํ ์ ์๋๋ก(๊ฐ์๋ก ์ฐ์ฐํ์๊ฐ ์ค์ด๋ค๊ฒ๋ j-i )
์ฒซ๋ฒ์งธ for๋ฌธ(i)์ ์ ์ด๋ (N-1)๋ฒ์ด ๋ ๋๊น์ง ๋ฐ๋ณต์์ผ์ผ ํ๋ค.
N์ด 3์ผ ๊ฒฝ์ฐ,
int main()
{
int temp = INT_MAX;
array<int, 3>arr = { 349,568,7};
for (int i = 0; i <2; i++)
{
for (int j = 0; j < 2 - i; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return 0;
}
๋ฒ๋ธ์ ๋ ฌ์ ์์ ๊ฐ์ด int index๋ int min์ ์ด๊ธฐํ ์ ์ธํ์ง ์์๋
์ด์ค for๋ฌธ๊ณผ temp ์ค์ ๋ง ์ํด์ฃผ์ด๋ ๊ตฌํ ๊ฐ๋ฅํ๋ค.
์๋๋ ์ ํ๋ธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑํ ์ฝ๋์ด๋ค.
์๋ ์์๋ ๋ฐฐ์ด์ด 10๊ฐ์ด๋ค.
#include <iostream>
#include <array>
using namespace std;
int main()
{
int temp = INT_MAX;
array<int, 10>arr = { 9,8,7,6,5,4,3,2,1,10 };
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 9 - i; j++) //๋ฐฐ์ด์ 10์นธ์ด์ง๋ง [j]์ [j+1]๋ฒ์งธ ๋ฐฐ์ด์ ๋น๊ตํ๋ฏ๋ก ์ฒ์์ 9๋ฒ๋ง ๋น๊ตํด๋ ๋จ
{ //์ฆ j ๋๋ ํ์(์๋ค๋น๊ต)๋ฅผ 9๋ฒ, 8๋ฒ, 7๋ฒ ~~~ 1๋ฒ๊น์ง๋ง ํ๋ ค๋ฉด i๋ 8๊น์ง๋ง OK.
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (auto ele : arr)
{
cout << ele << " ";
}
return 0;
}
์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ์ค์์ ๊ตฌํํ๊ธฐ๋ ๊ฐ์ฅ ์ฝ์ง๋ง ๊ฐ์ฅ ๋นํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
์ ํ ์ ๋ ฌ๊ณผ ๋น๊ตํด๋ณด์๋ฉด ์๊ฐ ๋ณต์ก๋๋ก๋ง ๋ฐ์ง์๋ฉด n์ ์ ๊ณฑ์ผ๋ก ๋๊ฐ์ ์ ์์ง๋ง
์ ํ ์ ๋ ฌ์ min๊ฐ์ด ๋ค์ด์๋ ์ธ๋ฑ์ค๋ฅผ ๊ธฐ์ตํด๋์๋ค๊ฐ
์์ชฝ for๋ฌธ ๋ฐ์์ ๊ธฐ์ตํด๋์ ์ธ๋ฑ์ค๋ง ์์ชฝ ์ธ๋ฑ์ค์ temp ๊ตํ์ฒ๋ฆฌ ํด์ฃผ๋ฉด ๋์ง๋ง
๋ฒ๋ธ ์ ๋ ฌ์ ์์ชฝ for๋ฌธ ์์์ ์์์ผ๋ก ๋งค๋ฒ temp ๊ตํ์ ํ๊ธฐ ๋๋ฌธ์ ์ค์ ์๊ฐ ์์๋์ ๋ ๊ธธ๋ค๊ณ ํ ์ ์๋ค.