[Java] ๋ฒ๋ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ
- -
ํ๋ก๊ทธ๋๋ฐ์ ํ๋ค ๋ณด๋ฉด ์๋ง์ ๊ฐ์ ์ฒ๋ฆฌํ๊ฒ ๋ฉ๋๋ค.
ํน๋ณํ ์์ ์์ด ์์ธ ๊ฐ๋ค์ ์ค๋ฆ์ฐจ์ ๋๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ฐ
์ ๋ ฌ์ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ค์ํ ์๊ณ ๋ฆฌ์ฆ์ด ์์ฃ .
์ค๋์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ์ค ๊ฐ์ฅ ๊ฐ๋จํ ๋ฒ๋ธ ์ ๋ ฌ์ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค.
๋๋คํ ๊ฐ 6๊ฐ๋ฅผ ๋ฐฐ์ด๋ก ๋ฝ์๋ธ ํ, ๋ฒ๋ธ ์ ๋ ฌ(์ค๋ฆ์ฐจ์)์ ์ด์ฉํ์ฌ ์ ๋ฆฌ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๋จผ์ ๊ฐ๋จํ ์๊ณ ๋ฆฌ์ฆ ๊ท์น๊ณผ, ๋ฐฐ์ด์ ์ค๋ช
๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋ฒ๋ธ ์ ๋ ฌ์ ์ฌ์ ์ ์๋ฏธ
๊ฑฐํ ์ ๋ ฌ(Bubble sort)์ ๋ ์ธ์ ํ ์์๋ฅผ ๊ฒ์ฌํ์ฌ ์ ๋ ฌํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์๊ฐ ๋ณต์ก๋๊ฐ {\displaystyle O(n^{2})}๋ก ์๋นํ ๋๋ฆฌ์ง๋ง, ์ฝ๋๊ฐ ๋จ์ํ๊ธฐ ๋๋ฌธ์ ์์ฃผ ์ฌ์ฉ๋๋ค. ์์์ ์ด๋์ด ๊ฑฐํ์ด ์๋ฉด์ผ๋ก ์ฌ๋ผ์ค๋ ๋ฏํ ๋ชจ์ต์ด์ฌ์ ์ง์ด์ง ์ด๋ฆ์ด๋ค. ์ถ์ฒ : ์ํค๋ฐฑ๊ณผ
์ฝ๊ฒ ์ค๋ช ํ๋ฉด, ๋ฒ๋ธ ์ ๋ ฌ์ด๋ ์์๋ฅผ ๋๊ฐ์ฉ ๋ฌถ์ด์ ์ํํ๋ ์ ๋ ฌ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
๊ทธ ๋ชจ์์ด ๋ง์น ๊ฑฐํ๊ฐ์์ ์ง์ด์ง ์ด๋ฆ์ด๊ณ ์!
๋ฒ๋ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๊ท์น
- ์ฒ์๋ถํฐ ๋๊น์ง ๋ชจ๋ ์์๋ค์ ์ํํ๋ฉด์ ๋น๊ตํ๋ค.
- ํ์ฌ ๊ฐ๊ณผ ๋ค์ ๊ฐ์ ๋น๊ตํ์ฌ ํฐ ๊ฐ์ ๋ค์์ผ๋ก ๋ณด๋ธ๋ค. -> ์ค๋ฆ์ฐจ์
์ค๋ ๊ตฌํํ๋ ค๋ ์ฝ๋์ ๊ผญ ํ์ํ ๊ฒ๋ค์ ์ง๊ธ๋ถํฐ ํ๋์ฉ ๊ณต๋ถํด๋ณผ๊ป์
1. ๋ฐฐ์ด
2. ๋ฒ๋ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ
3. ๋๋ค ๊ฐ
4. ์๋ฆฌ ๋ฐ๊พธ๊ธฐ ์ค์ (temp)
1. ๋ฐฐ์ด์ด๋?
๋ฐฐ์ด์ด๋ ๋ฒํธ(์ธ๋ฑ์ค)์ ๋ฒํธ์ ๋์ํ๋ ๋ฐ์ดํฐ๋ค๋ก ์ด๋ฃจ์ด์ง ์๋ฃ๊ตฌ์กฐ๋ฅผ ๋ํ๋ ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋ฐฐ์ด์๋ ๊ฐ์ ์ข ๋ฅ์ ๋ฐ์ดํฐ๋ค์ด ์์ฐจ์ ์ผ๋ก ์ ์ฅ๋์ด, ๊ฐ์ ๋ฒํธ๊ฐ ๊ณง ๋ฐฐ์ด์ ์์์ ์ผ๋ก๋ถํฐ ๊ฐ์ด ์ ์ฅ๋์ด ์๋ ์๋์ ์ธ ์์น๊ฐ ๋์ฃ
๋๋ถ๋ถ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ฌ์ฉํ ์ ์๋ ๊ฐ์ฅ ๊ธฐ์ด์ ์ธ ์๋ฃ ๊ตฌ์กฐ๋ผ๊ณ ํ ์ ์์ต๋๋ค.
++ ๋ณ์๋ ํ๊ฐ์ ๋ฐ์ดํฐ๋ง ์ ์ฅ ํ ์ ์๊ธฐ ๋๋ฌธ์, ์ ์ฅํด์ผ ํ ๋ฐ์ดํฐ์ ์๊ฐ ๋ง์์ง๋ค๋ฉด ๋ง์ ์์ ๋ณ์๋ฅผ ์ ์ธ ํด์ผํ๋ ๋ถํธํจ์ด ์กด์ฌํฉ๋๋ค.(๋นํจ์จ์ ์) ์ด๋ฐ ๋ถํธํ ์ ์ ํด๊ฒฐ ํ ์ ์๋ ๊ฒ์ด ๋ฐ๋ก ๋ฐ์ดํฐ ๊ด๋ฆฌ์ ํจ์จ์ฑ์ ๋์ฌ์ฃผ๋ "๋ฐฐ์ด" ์ด๋๋๋ค.
๋ฐฐ์ด์ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์ ์ธ ํ ์ ์๋๋ฐ (์ ๊ฐ์ ๊ฒฝ์ฐ int ํ์ ์ arr์ด๋ผ๋ ๋ณ์๋ฅผ ์ฌ์ฉํ์์ต๋๋ค.)
- int []arr = new int[3]---->> ํ์ [ ] ๋ณ์
- int arr[] = new int[3]---->> ํ์ ๋ณ์ [ ]
์์ ๊ฐ์ด์ด๋ฐ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
๊ทธ๋ฆผ์ผ๋ก ์ค๋ช ๋๋ฆฌ์๋ฉด ์๋์ ๊ฐ์๋ฐ, ๋ฐฐ์ด์ ์ ์ธํ๊ฒ ๋๋ฉด ํฌ๊ธฐ๊ฐ ํ ๋น๋๊ณ ์ธ๋ฑ์ค (index) ๋ฒํธ๊ฐ ๋ถ์ฌ๋ฉ๋๋ค.
๋ฐฐ์ด์ 0๋ฒ์งธ ๋ฐฉ๋ถํฐ ์์ํ๊ธฐ ๋๋ฌธ์, 6์ ์ ์ธํ์๋ค๋ฉด 0~5๊น์ง ์ธ๋ฑ์ค๊ฐ ๋งค๊ฒจ์ง๋๋ค.
2. ๋ฒ๋ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ
๋ฒ๋ธ ์ ๋ ฌ์ ๋ํ ์ค๋ช ์ ์์ ๋ช ์ํ๊ธฐ ๋๋ฌธ์ ์๋ตํ๊ณ
๋ฒ๋ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๊ทธ๋ฆผ์ผ๋ก ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋ฐฐ์ด์ 9,3,6,1,2 ๊ฐ์ด ์์๋๋ก ์ ์ฅ๋์๋ค๊ณ ๊ฐ์ ํ ๋ฒ๋ธ ์ ๋ ฌ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ์ฉํด ๋ณด๊ฒ ์ต๋๋ค.
1ํ์ ์ ํ๊ณ ๋๋ฉด, ๋ง์ง๋ง ์๋ฆฌ์๋ ๊ฐ์ฅ ํฐ ์๊ฐ ์๋ฆฌํ๊ฒ ๋ฉ๋๋ค. (๊ณ ์ ๊ฐ)
1ํ์ ์ฐจ์์๋ ๊ณ ์ ์ผ๋ก ์ง์ ๋ ๊ฐ์ด ์์ผ๋ฏ๋ก ๋น๊ต๊ฐ : 4๋ฒ ์ผ์ด๋จ
2ํ์ ๊น์ง ํ๊ณ ๋๋ฉด 6,9๋ ๊ณ ์ ์ด ๋ฉ๋๋ค.
์ฆ 2ํ์ ์ฐจ์์๋ 9๊ฐ ๊ณ ์ ๋์ด์์ผ๋ฏ๋ก 6๊ณผ 2๊น์ง๋ง ๋น๊ต๋ฅผ ํจ -> ๋น๊ต ์ : 3๋ฒ
3ํ์ ์ด ๋๋๋ฉด 3,6,9 ๋ ๊ณ ์ ์ด ๋ฉ๋๋ค ---> ๋น๊ต์ : 2๋ฒ
4ํ์ ์์๋ 3,6,9 ๊ณ ์ ์ ์ ์ธํ "1๋ฒ"๋ง ๋น๊ต๋ฅผ ํ๊ณ
1์ ๊ฐ์ด ๋ ์์ผ๋ฏ๋ก ํ์ ์ ์ข ๋ฃ ํฉ๋๋ค.
์ฆ ๊ฒฐ๊ณผ๋ 1,2,3,6,9๊ฐ ๋์ค๊ฒ ์ฃ .
๋ฒ๋ธ ์ ๋ ฌ์ ์ด๋ฐ์์ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๊ฐ์ ์ ๋ ฌํฉ๋๋ค.
3. ๋๋ค ๊ฐ
์๋ฐ์๋ ๋๋ค ๊ฐ์ ๋ฐฐ์ถํด๋ด๋ ๋์ ํด๋์ค๊ฐ ์กด์ฌ ํฉ๋๋ค.
๋์ ํด๋์ค๋ 'Math' ๋ผ๋ ํด๋์ค ์์ ์กด์ฌ ํ๋๋ฐ 'Math'๋ ์ต์์ ํด๋์ค์ธ 'Object'ํด๋์ค ์์ ์กด์ฌํ๋ฏ๋ก
๋ฐ๋ก import๋ฅผ ํด์ค ํ์๊ฐ ์์ต๋๋ค.
++๋๋ค ํจ์ ๋ฃ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์
Random random = new Random();๋ก ๊ฐ์ฒด ์์ฑ ํ importํด์ค๋ค.
๊ฐ์ฒด ์ฌ์ฉํ์ฌ nextInt() ๋ฉ์๋ ํธ์ถ --> ์ ์์ธ ๋ชจ๋ ์ซ์๋ค ๋ด์์ ๋๋คํ ๋์๋ฅผ ๋ฐ์์ํด.
Math.random(); ์ด๋ ๋ช ๋ น์ด๋ก ๋๋ค ๊ฐ์ ์ถ๋ ฅ ํ ์ ์๋๋ฐ
์ซ์ ๋ฒ์๋ 0.0๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 1.0๋ณด๋ค ์๋ค. --> ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ํ๋ ๊ฐ์ intํ์ผ๋ก ์ถ๋ ฅ ์ +1์ ํด์ฃผ์ด์ผ ํ๋ค.
1๋ณด๋ค ์์ ์์ ๋ฒ์๋ก ๋๋ค ๊ฐ์ด ๋์ค๋๋ฐ ์ ์ํ int๋ ์์์ ์ ๋ฌด์ํ๊ธฐ ๋๋ฌธ์ ์ํ๋ ์๋ณด๋ค -1 ์ด ๋ ์๊ฐ ๋์ค๊ธฐ ๋๋ฌธ์ด๋ค.
๋ด๊ฐ ์ํ๋ ๋๋ค๊ฐ => 1~45 ์ผ ๊ฒฝ์ฐ
(int)(Math.random() *45)+1; --> ์ด๋ ๊ฒ ๋๋ฉด 1~45 ์ฌ์ด ๋๋ค ๊ฐ ๋ฐ์
(int)(Math.random() *45); --> ์ด๋ฐ ๊ฒฝ์ฐ์๋ 0~44 ์ฌ์ด ๋๋ค ๊ฐ์ด ๋ฐ์ํฉ๋๋ค.
4. ์๋ฆฌ ๋ฐ๊พธ๊ธฐ ์ค์ (temp)
์๋ ์ฝ๋์ ์ฃผ์์ผ๋ก ์ค๋ช ์ ๋ฌ์์ต๋๋ค.
์ฝ๋๋ฅผ ๋ณด์๋ฉด ์ดํด๊ฐ ๋น ๋ฅด์ค ๊ฒ ๊ฐ์
์ฝ๋๋ฅผ ์ง๋ณด์๋๋ฐ์ ์ด๋ ๊ฒ ๊ฐ์ ๋ฐ๊พธ๊ธฐ ์ํด ๊ฐ์ ๋ด์ ๋ณ์์ธ temp๋ฅผ ์ ์ธํด์ฃผ์ด
์๋ฆฌ๋ฅผ ์ฎ๊ธฐ๋ ๊ฒ์ ๋๋ค!
์ ์ด๋ ๊ฒ ์ค์ํ ํฌ์ธํธ 4๊ฐ์ง๋ฅผ ์ฐ์ด๋ดค์ผ๋ ์ด์ ์ ์ฒด์ ์ธ ์ฝ๋๋ฅผ ์ง๋ณผ๊น์?
์ ๊ฐ ์ง๋ณผ ์ฝ๋๋ ๋ฐฐ์ด์ 6๊ฐ์ ๋ฐฉ์ ์ ์ธํ ํ, ๋๋ค์ผ๋ก ๊ทธ์์ ๊ฐ์ ๋ฃ๊ณ (๋ฒ์ : 1~45)
๊ทธ ๊ฐ๋ค์ ์ค๋ฆ ์ฐจ์์ผ๋ก ์ ๋ ฌ ํ ๊บผ์์!
๋์ค์ ์์ฉ์ ํด์ (์ค๋ณต์ ๊ฑฐ, 2์ฐจ์ ๋ฐฐ์ด) ๋ก๋๋ฅผ ์ง๋ณผ๊ป๋๋น ใ ใ
๋ฐ๋ก ์๋์ ์ฝ๋๋ฅผ ์บก์ณ ํ๋๋ฐ์, ์ค๋ช ์ ์ฝ๋์์ ์ฃผ์์ผ๋ก ์จ๋๊ฒ ์ต๋๋ค.
์ด๋ ๊ฒ ์ฝ๋๋ฅผ ์ง๋ดค์ด์...
์์ง ์ ๋ ์ฝ๋ฉ์ค๋ ฅ์ด ๋ฏธํกํ์ฌ ๋ ์ด์ฌํ ๋ ธ๋ ฅํด์ ๋ค์๋ฒ์๋ ์กฐ๊ธ ๋ ๊น๋ํ ์ฝ๋๋ก ์ง๋ณผ๊ป์!
์ฝ๋๋ ๋์ ๋ณด์ด๊ธฐ ์ฝ๊ฒ (์ ์ ๊ฐ์ ์ด๋ณด์ ๋ถ๋ค๋ ์ดํดํ๊ธฐ ์ฝ๊ฒ_!!)
์ผ๋ถ๋ฌ "{" "}" ์ด๋ฐ ๋ถํธ๋ค์ ๋ณด์ด๊ฒ ๋ค Enterํด์ฃผ์๋ต๋๋น^_^
๊ฒฐ๊ณผ๋
์ด๋ ๊ฒ ๋์ค๋ค์~ 6๊ฐ์ ์ซ์๋ฅผ ๋๋ค์ผ๋ก ๊ณ ๋ฅด๊ณ -> ์ ๋ ฌ๋์ด ์์ ์๊ฐ ์์ผ๋ก ์์ฃ !
ใ ใ ์ด๋ฒ ๊ธ์ ์ฌ๊ธฐ๊น์ง ๋ง๋ฌด๋ฆฌ ํ๊ฒ ์ต๋๋น!
๋ค๋ค ์๊ณ ํ์ จ์ด์~ ๐ฉ
'Languages > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ์ปฌ๋ ์ (Collection) (0) | 2020.04.21 |
---|---|
[JavaFx] ๋ธ๋ก ์์ฑํ๊ธฐ (0) | 2020.04.20 |
[Java] bank ์๊ณ ๋ฆฌ์ฆ (0) | 2020.04.15 |
[Java] JavaFx์ค์นํ๊ธฐ (0) | 2020.04.05 |
์์คํ ๊ณต๊ฐ ๊ฐ์ฌํฉ๋๋ค