์ฝ์ ์ ๋ ฌ์ด๋ ์ซ์๋ฅผ ์ํ๋ ์์น๋ฅผ ์ฐพ์๊ฐ์ ์ฝ์ ํ๋ ์ ๋ ฌ์ด๋ค. ํ์ํ ๋งํผ๋ง ์์ง์ฌ์ ์๊ฐ ๋ณต์ก๋๋ n์ ์ ๊ณฑ์ด๋ผ๋ ์ ์์ ๋์ผํ ์ง๋ผ๋ ์ฐ์ฐ์๊ฐ ์ ์ผ๋ฏ๋ก ๋ฒ๋ธ ์ ๋ ฌ์ด๋ ์ ํ ์ ๋ ฌ๋ณด๋ค ๋น ๋ฅด๋ค.
2 6 4 9 8 1 3 5 7 ๋ผ๋ 9๊ฐ์ ์ซ์๋ฅผ ํ ๋ฐฐ์ด์ ๋ด๊ณ ์ฝ์ ์ ๋ ฌ์ ํ์ฉํด ์ค๋ฆ์ฐจ์์ผ๋ก ๋ฐ๊พธ๋ ์๋ฎฌ๋ ์ด์ ์ ํด๋ณด์.
์ ์ผ ์ ์ซ์๋ฅผ 0๋ฒ์งธ ์ธ๋ฑ์ค, ๋ง์ง๋ง ์ซ์๋ฅผ 8๋ฒ์งธ ์ธ๋ฑ์ค๋ผ ๊ฐ์ ํ๋ค.
2 6 4 9 8 1 3 5 7 //2<6์ด๋ฏ๋ก 2์ 6 ํจ์ค
2 _ 6 '4' 9 8 1 3 5 7 //4๋ฅผ 6 ์์ ๋ฃ์ผ๋ฉด ๋๊ฒ ๋ค.(6๊ณผ ์๋ฆฌ๋ฐ๊ฟ)
2 4 6 9 8 1 3 5 7 //ํ์ฌ ์ํฉ(๋ถ์์ ํ์ง๋ง ์ ๋ ฌ์ด ์ฐจ์ธฐ ๋๊ณ ์์)
2 4 6 _ 9 '8' 1 3 5 7 //6<9์ด๋ฏ๋ก 9ํจ์ค 8์ 9 ์์ ๋ฃ์. (9์ ์๋ฆฌ๋ฐ๊ฟ)
2 4 6 8 9 1 3 5 7 //ํ์ฌ ์ํฉ(๋ถ์์ ํ์ง๋ง ์ ๋ ฌ์ด ์ฐจ์ธฐ ๋๊ณ ์์)
_ 2 4 6 8 9 '1' 3 5 7 //1์ 2 ์์ ๋ฃ์ผ๋ฉด ๋๊ฒ ๋ค.(9 -> 8 -> 6 -> 4->2 ๋ชจ๋ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋น๊ตํ๋ค๊ฐ ๋งจ ์ ์ ์ฐฉ )
1 2 4 6 8 9 3 5 7 //ํ์ฌ ์ํฉ(๋ถ์์ ํ์ง๋ง ์ ๋ ฌ์ด ์ฐจ์ธฐ ๋๊ณ ์์)
1 2 _ 4 6 8 9 '3' 5 7 //3์ 4 ์์ ๋ฃ์. (9-> 8-> 6-> 4 ๋ชจ๋ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋น๊ตํ๋ค๊ฐ 4 ์ ์ ์ฐฉ)
1 2 3 4 6 8 9 5 7 //ํ์ฌ ์ํฉ(๋ถ์์ ํ์ง๋ง ์ ๋ ฌ์ด ์ฐจ์ธฐ ๋๊ณ ์์)
1 2 3 4 _ 6 8 9 '5' 7 //5๋ฅผ 6 ์์ ๋ฃ์. (9 -> 8-> 6 ๋ชจ๋ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋น๊ตํ๋ค๊ฐ 6 ์ ์ ์ฐฉ)
1 2 3 4 5 6 8 9 7 //ํ์ฌ ์ํฉ(๋ถ์์ ํ์ง๋ง ์ ๋ ฌ์ด ์ฐจ์ธฐ ๋๊ณ ์์)
1 2 3 4 5 6 _ 8 9 '7' //7์ 8 ์์ ๋ฃ์. (9 -> 8 ๋ชจ๋ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋น๊ตํ๋ค๊ฐ 8์ ์ ์ฐฉ)
1 2 3 4 5 6 7 8 9 //์๋ฃ~~
#include <iostream>
#include <array>
using namespace std;
int main()
{
int temp = INT_MAX;
int j= INT_MAX;
int arr[10] = { 14,2,37,4,56,6,567,568,93,102 };
for (int i = 0; i < 9; i++)
{
j = i;
while (arr[j] >= arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
j--;
if (j < 0)
break;
}
}
for (auto ele:arr)
{
cout << ele << " ";
}
return 0;
}
ํ์๊ฐ ์ฆ๊ฒจ์ฐ๋ std::array๋ก ๊ณ์ ํ ์คํธ ํด๋ณด๋ค๊ฐ "array subscript out of range" ๊ฒฝ๊ณ ๋ฌธ์ด ๋ ์ ํฌ๊ธฐํ ๊น ํ์ง๋ง
if (j < 0)
break;
๋ฃ์ด์ฃผ๋ ์ฐ๋ ๊ธฐ๊ฐ์ด ์์ด์ ธ์์ธ์ง ์ ์ ์๋ํ์๋ค. ์์ธ์ฒ๋ฆฌ์ ํ!
๋ง๋ง ์ฆ๊ฐ์ (์ด๋ฒ ์ฝ๋์ ์ฌ์ฉํ j-- ๊ฐ์ด...)์ ์ฌ์ฉํ ๋๋ ์์ธ์ฒ๋ฆฌ๋ฅผ ๊ผผ๊ผผํ๊ฒ ํด์ฃผ๋๋ก ํ์!
#include <iostream>
#include <array>
using namespace std;
int main()
{
int temp = INT_MAX;
int j = INT_MAX;
array<int,10>arr = { 14,2,37,4,56,6,567,568,93,102 };
for (int i = 0; i < 9; i++)
{
j = i;
while (arr[j] >= arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
j--;
if (j < 0)
break;
}
}
for (auto ele : arr)
{
cout << ele << " ";
}
return 0;
}
'์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ > ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BFS ์ฝ๋ (0) | 2021.12.27 |
---|---|
๋ฐฐ์ด ํ์ , ์ ์ ๋ฐฐ์ด ๋ด์์ ํน์ ์์๋ฅผ ์ ํํ ์์น๋ก ์ด๋ํ๊ณ ์ถ์ ๋ (0) | 2021.12.15 |
[c++] ๋ฒ๋ธ์ ๋ ฌ (0) | 2021.09.21 |
[c++] [์ ํ ์ ๋ ฌ] ํ์ฉํด์ ๋ฐฐ์ด ์ ์ซ์๋ค์ ์ค๋ฆ์ฐจ์์ผ๋ก ๋ฐ๊พธ๊ธฐ (0) | 2021.09.20 |
c++ ๋ฐฐ์ด ์ค๋ฆ์ฐจ์ ๋ด๋ฆผ์ฐจ์ ๊ตฌํ (0) | 2021.09.20 |