ALOHA CLASS
/
ํ๋ก๊ทธ๋๋ฐ
/
Java
/
์๋ฃ๊ตฌ์กฐ
/
์ ๋ ฌ
Search
Share
์ ๋ ฌ
์ ํ ์ ๋ ฌ (Selection Sort)
์ ํ ์ ๋ ฌ์ ๋ฐฐ์ด์์ ์ต์๊ฐ์ ์ฐพ์ ๋งจ ์์ ์์์ ๊ตํํ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ์ฌ ์ ๋ ฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
ํต์ฌ ์์
โข
๋ฐฐ์ด์ ์ํํ๋ฉฐ ์ต์๊ฐ์ ์ฐพ์ ๋งจ ์๋ถํฐ ์ฑ์๋๊ฐ๋ ๋ฐฉ์
โข
๋ ๊ฐ์ ์๋ธ ๋ฆฌ์คํธ๋ก ๋๋์ด ์ ๋ ฌ ์งํ
โข
์ ์๋ฆฌ ์ ๋ ฌ(in-place sorting) ์๊ณ ๋ฆฌ์ฆ
์๊ฐ ๋ณต์ก๋
์ฃผ์ ํน์ง
โข
์ฅ์
โข
๋จ์
์์ ์ฝ๋
์ง์ ๊ตฌํ
์ ํ์ ๋ ฌ
๋ฒ๋ธ ์ ๋ ฌ (Bubble Sort)
๋ฐฐ์ด์ ์ธ์ ํ ๋ ์์๋ฅผ ๋น๊ตํ์ฌ ์์๊ฐ ๋ง์ง ์์ผ๋ฉด ์๋ก ๊ตํํ๋ฉด์ ์ ๋ ฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ๊ฐ์ฅ ํฐ ์์๊ฐ ๋ฒ๋ธ์ฒ๋ผ ๋ ์ฌ๋ผ ๋งจ ๋ค๋ก ์ด๋ํ๋ ๋ชจ์ต๊ณผ ์ ์ฌํ์ฌ ๋ฒ๋ธ ์ ๋ ฌ์ด๋ผ๊ณ ํฉ๋๋ค.
ํต์ฌ ์์
โข
์ธ์ ํ ๋ ์์๋ฅผ ๋น๊ตํ์ฌ ๊ตํ
โข
ํ ๋ฒ์ ์ํ๋ง๋ค ๊ฐ์ฅ ํฐ ์์๊ฐ ๋งจ ๋ค๋ก ์ด๋
โข
n-1๋ฒ์ ์ํ๋ก ์ ์ฒด ์ ๋ ฌ ์๋ฃ
์๊ฐ ๋ณต์ก๋
์ฃผ์ ํน์ง
โข
๊ตฌํ์ด ๋งค์ฐ ๊ฐ๋จํจ
โข
์์ ์ ๋ ฌ(Stable Sort)
โข
์ ์๋ฆฌ ์ ๋ ฌ(In-place Sort)
โข
๋นํจ์จ์ ์ธ ์๊ฐ ๋ณต์ก๋๋ก ์ธํด ์ค๋ฌด์์๋ ์ ์ฌ์ฉ๋์ง ์์
์์ ์ฝ๋
๋ฒ๋ธ์ ๋ ฌ
์ฝ์ ์ ๋ ฌ (Insertion Sort)
์ด๋ฏธ ์ ๋ ฌ๋ ๋ถ๋ถ๊ณผ ๋น๊ตํ์ฌ ์์ ์ ์์น๋ฅผ ์ฐพ์ ์ฝ์ ํ๋ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ์์์๋ถํฐ ์ฐจ๋ก๋๋ก ์ด๋ฏธ ์ ๋ ฌ๋ ๋ฐฐ์ด ๋ถ๋ถ๊ณผ ๋น๊ตํ์ฌ ์์ ์ ์์น๋ฅผ ์ฐพ์ ์ฝ์ ํฉ๋๋ค.
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ | ALOHA
์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ for ์ง์ฅ์ธ - ์์๋_์ฝ์ ์ ๋ ฌ
์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ for ์ง์ฅ์ธ - ์์๋_์ฝ์ ์ ๋ ฌ
1. ์์๋ - ์ฝ์ ์ ๋ ฌ [๋ฌธ์ ] ์๋์ <์์๋> ๋ 10๊ฐ์ ์์ฐ์๊ฐ ๋ฐฐ์ด A(6)์ ์ ๋ ฌ๋์ง ์์ ์ํ...
ํต์ฌ ์์
โข
์ ๋ ฌ๋ ๋ถ๋ถ๊ณผ ์ ๋ ฌ๋์ง ์์ ๋ถ๋ถ์ผ๋ก ๋๋์ด ์งํ
โข
๊ฐ ์์๋ฅผ ์ ์ ํ ์์น์ ์ฝ์
โข
in-place ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฑฐ์ ํ์ํ์ง ์์
์๊ฐ ๋ณต์ก๋
์ฃผ์ ํน์ง
โข
์์ ์ ๋ ฌ(Stable Sort)
์ฝ์ ์ ๋ ฌ
๋ณํฉ ์ ๋ ฌ (Merge Sort)
๋ถํ ์ ๋ณต(Divide and Conquer) ์๊ณ ๋ฆฌ์ฆ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์ ๋ ฌ ๋ฐฉ์์ผ๋ก, ๋ฆฌ์คํธ๋ฅผ ์ ๋ฐ์ฉ ๋๋์ด ์ ๋ ฌํ ํ ๋ค์ ํฉ์น๋ฉด์ ์ ์ฒด๋ฅผ ์ ๋ ฌํ๋ ๋ฐฉ๋ฒ
ํต์ฌ ์์
โข
๋ถํ (Divide): ์ ๋ ฅ ๋ฐฐ์ด์ ๊ฐ์ ํฌ๊ธฐ์ 2๊ฐ์ ๋ถ๋ถ ๋ฐฐ์ด๋ก ๋ถํ
โข
์ ๋ณต(Conquer): ๋ถ๋ถ ๋ฐฐ์ด์ ์ ๋ ฌ
โข
๊ฒฐํฉ(Combine): ์ ๋ ฌ๋ ๋ถ๋ถ ๋ฐฐ์ด๋ค์ ํ๋์ ๋ฐฐ์ด๋ก ๋ณํฉ
์๊ฐ ๋ณต์ก๋
์ฃผ์ ํน์ง
โข
์์ ์ ๋ ฌ(Stable Sort): ๋์ผํ ๊ฐ์ ๋ํด ์๋์ ์์๊ฐ ์ ์ง๋จ
โข
๋น์ ์๋ฆฌ ์ ๋ ฌ(Not-in-place Sort): ์ถ๊ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ํ์
โข
๋ถํ ์ ๋ณต ๋ฐฉ์: ๋ฌธ์ ๋ฅผ ์์ 2๊ฐ์ ๋ฌธ์ ๋ก ๋ถ๋ฆฌํ๊ณ ํด๊ฒฐํ ํ, ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์์ ์๋์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ
๋ณํฉ ์ ๋ ฌ
ํต ์ ๋ ฌ (Quick Sort)
๋ถํ ์ ๋ณต(divide and conquer) ๋ฐฉ์์ ์ฌ์ฉํ๋ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก, ํผ๋ฒ(pivot)์ ๊ธฐ์ค์ผ๋ก ๋ฐฐ์ด์ ๋ถํ ํ๊ณ ์ฌ๊ท์ ์ผ๋ก ์ ๋ ฌํ๋ ๋ฐฉ์์ ๋๋ค.
ํต์ฌ ์์
์๊ฐ ๋ณต์ก๋
์ฃผ์ ํน์ง
โข
๋ถ์์ ์ ๋ ฌ: ๋์ผํ ๊ฐ์ ์์๋ค์ ์๋์ ์์น๊ฐ ๋ณ๊ฒฝ๋ ์ ์์
โข
์ ์๋ฆฌ ์ ๋ ฌ: ์ถ๊ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๊ฑฐ์ ํ์ํ์ง ์์
โข
๋ค๋ฅธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๋นํด ์ผ๋ฐ์ ์ผ๋ก ๋น ๋ฅธ ์ฑ๋ฅ์ ๋ณด์
์์ ์ฝ๋ (Java)
ํต ์ ๋ ฌ
ํ ์ ๋ ฌ (Heap Sort)
ํ ์ ๋ ฌ์ ์์ ์ด์ง ํธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ํ(Heap) ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ์ต๋ ํ ๋๋ ์ต์ ํ์ ๊ตฌ์ฑํ์ฌ ์์ฐจ์ ์ผ๋ก ์์๋ฅผ ๊บผ๋ด์ด ์ ๋ ฌ์ ์ํํฉ๋๋ค.
ํต์ฌ ์์
โข
ํ(Heap) ์๋ฃ๊ตฌ์กฐ ํ์ฉ
โข
์์ ์ด์ง ํธ๋ฆฌ ๊ธฐ๋ฐ
โข
๋ถ์์ ์ ๋ ฌ
โข
์ ์๋ฆฌ ์ ๋ ฌ(in-place sorting)
์๊ฐ ๋ณต์ก๋
์ฃผ์ ํน์ง
โข
ํญ์ O(nlog n)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๋ณด์ฅ
โข
์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๊ฑฐ์ ํ์ํ์ง ์์
โข
๋๊ท๋ชจ ๋ฐ์ดํฐ ์ ๋ ฌ์ ํจ์จ์
โข
๋ถ์์ ์ ๋ ฌ์ด๋ฏ๋ก ๋์ผํ ๊ฐ์ ์์๊ฐ ๋ณด์ฅ๋์ง ์์
ํ ์ ๋ ฌ