๐ป JAVA/์๊ณ ๋ฆฌ์ฆ, ์๋ฃ๊ตฌ์กฐ
๊ฐ์ ArrayList๋ฅผ ์์ฃผ ์ฌ์ฉํ๋ ํธ์ธ๋ฐ ArrayList๋ ์ Array์ ๋ค๋ฅด๊ฒ ์ด๊ธฐ ์ฌ์ด์ฆ๋ฅผ ์ ํด์ฃผ์ง ์์๋ ๋๊ณ , ๋ฌดํ์ ์ผ๋ก ์์๊ฐ ์ถ๊ฐ๋๋ ๊ฒ ์
๋๋ค. ์ด ๋ถ๋ถ์ด ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๋ฉด์๋ ๋ ์๋ฌธ์ด์์ต๋๋ค. ์ค๋์ ArrayList๋ฅผ ๊ฐ๋จํ๊ฒ ํด๋ถํด๋ณผ ๊ฒ ์
๋๋ค. ์์ ์ถ๊ฐํ๋ ๋ถ๋ถ์ ์ค์ ์ ์ผ๋ก ์ดํด๋ณด๊ฒ ์ต๋๋ค. ArrayList ๋ด๋ถ์ ์ผ๋ก๋ ์ด๋ป๊ฒ ๋์ด์์๊น? public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, java.io.Serializable { private static final long serialVersionUID = 8683452581122892189L; /** * Default..
๐ป JAVA/์๊ณ ๋ฆฌ์ฆ, ์๋ฃ๊ตฌ์กฐ
์๋
ํ์ธ์, ์๊ณ ๋ฆฌ์ฆ์ ์ ๋ฆฌํ๋ ํฌ์คํ
์
๋๋ค. ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ์ฐธ๊ณ ํ์๋ ค๋ฉด ํด๋น ์นดํ
๊ณ ๋ฆฌ๋ฅผ ์ด์ฉํด์ฃผ์ธ์. ๐ '๐ป JAVA/์๊ณ ๋ฆฌ์ฆ, ์๋ฃ๊ตฌ์กฐ' ์นดํ
๊ณ ๋ฆฌ์ ๊ธ ๋ชฉ๋ก ๊ณต๋ถํ ๊ฒ๋ค ์ ๋ฆฌํ ๋ด์ฉ์ ํฌ์คํ
ํฉ๋๋ค. iseunghan.tistory.com ์ด๋ถ ํ์ (Binary Search) ์ด๋ถ ํ์์ ํ์ ๋ฒ์๋ฅผ ๋๊ฐ๋ก ๋๋ ์ ํ์ํ๊ธฐ ๋๋ฌธ์ ํจ์ฌ ๋น ๋ฅธ ํ์ ์๊ณ ๋ฆฌ์ฆ์
๋๋ค. ์ฒ์๋ถํฐ ์ฐจ๋ก๋๋ก ํ์ : O(N) ์๊ฐ ๋ณต์ก๋ : O(log N) ๊ณผ์ 0. ํ์ํ๊ธฐ ์ํ ๋ฐฐ์ด, ์ฐพ๊ณ ์ ํ๋ ๊ฐ : 9 (์ดํ Target) 1. ๋จผ์ ๋ฐฐ์ด์ ์ ๋ ฌ์ํต๋๋ค. 2. ์ธ๋ฑ์ค L, R, MID๋ฅผ ์ง์ ํด์ค๋๋ค. 3. if (Target == arr[M]) if(target == arr[M]) { return M; } 4. el..
๐ป JAVA/์๊ณ ๋ฆฌ์ฆ, ์๋ฃ๊ตฌ์กฐ
์๋
ํ์ธ์, ์๊ณ ๋ฆฌ์ฆ์ ์ ๋ฆฌํ๋ ํฌ์คํ
์
๋๋ค. ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ์ฐธ๊ณ ํ์๋ ค๋ฉด ํด๋น ์นดํ
๊ณ ๋ฆฌ๋ฅผ ์ด์ฉํด์ฃผ์ธ์. ๐ '๐ป JAVA/์๊ณ ๋ฆฌ์ฆ, ์๋ฃ๊ตฌ์กฐ' ์นดํ
๊ณ ๋ฆฌ์ ๊ธ ๋ชฉ๋ก ๊ณต๋ถํ ๊ฒ๋ค ์ ๋ฆฌํ ๋ด์ฉ์ ํฌ์คํ
ํฉ๋๋ค. iseunghan.tistory.com ๋ฒ๋ธ ์ ๋ ฌ (Bubble Sort) ๋ฒ๋ธ ์ ๋ ฌ์ ์ธ์ ํ ๋ ์์๋ฅผ ๋น๊ตํด ์๋ฆฌ๋ฅผ ๋ฐ๊ฟ๋๊ฐ๋ฉด์ ์ ๋ ฌํ๋ ์๊ณ ๋ฆฌ์ฆ์
๋๋ค. ์๊ฐ ๋ณต์ก๋ : O(N^2) ๊ณต๊ฐ ๋ณต์ก๋ : O(N) ์์ ์ ๋ ฌ ๊ณผ์ ์ฒซ ๋ฒ์งธ ์์๋ถํฐ ๋ง์ง๋ง ์์๊น์ง ์ฐจ๋ก๋๋ก ์ธ์ ํ ์์๋ฅผ ๋น๊ตํฉ๋๋ค. ์๋ก ๋น๊ตํ์ฌ ์ ์์๊ฐ ๋ ํฌ๋ค๋ฉด ์๋ก ์์น๋ฅผ ๊ตํํด์ค๋๋ค. ์ด๋ ๊ฒ ํ ์ฌ์ดํด์ด ์๋ฃ๊ฐ ๋๋ฉด, ํด๋น ์ฌ์ดํด์ ๋ง์ง๋ง์ ์์น์ํจ ์์๋ ์ ๋ ฌ์ด ์๋ฃ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. (์ค์ : ์๋์์ ์ค๋ช
) Code ..
๐ป JAVA/์๊ณ ๋ฆฌ์ฆ, ์๋ฃ๊ตฌ์กฐ
์๋
ํ์ธ์, ์๊ณ ๋ฆฌ์ฆ์ ์ ๋ฆฌํ๋ ํฌ์คํ
์
๋๋ค. ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ์ฐธ๊ณ ํ์๋ ค๋ฉด ํด๋น ์นดํ
๊ณ ๋ฆฌ๋ฅผ ์ด์ฉํด์ฃผ์ธ์. ๐ '๐ป JAVA/์๊ณ ๋ฆฌ์ฆ, ์๋ฃ๊ตฌ์กฐ' ์นดํ
๊ณ ๋ฆฌ์ ๊ธ ๋ชฉ๋ก ๊ณต๋ถํ ๊ฒ๋ค ์ ๋ฆฌํ ๋ด์ฉ์ ํฌ์คํ
ํฉ๋๋ค. iseunghan.tistory.com ์ฝ์
์ ๋ ฌ (Insertion Sort) ์ฝ์
์ ๋ ฌ์ 2 ๋ฒ์งธ ์์๋ถํฐ ๋ง์ง๋ง ์์๊น์ง ์์ฐจ์ ์ผ๋ก, ํด๋น ์์๋ถํฐ 1 ๋ฒ์งธ ์์๊น์ง ๋น๊ต๋ฅผ ํ๋ฉฐ ์ฝ์
ํด ๋๊ฐ๋ ์ ๋ ฌ์
๋๋ค. ์๊ฐ ๋ณต์ก๋ : O(N^2) ๊ณต๊ฐ ๋ณต์ก๋ : O(N) ์์ ์ ๋ ฌ ๊ณผ์ 2 ๋ฒ์งธ ์์๋ถํฐ ์์ํ์ฌ ๋ง์ง๋ง ์์๊น์ง ์์ฐจ์ ์ผ๋ก ์ ๋ ฌ์ ์งํํฉ๋๋ค. 1๋ฒ ๊ณผ์ ์์ i ๋ฒ์งธ ์์๋ถํฐ ์์ํ๋ค๋ฉด, i ๋ฒ์งธ๋ถํฐ 1 ๋ฒ์งธ ์์๊น์ง ๋น๊ต๋ฅผ ํ๋ฉฐ ์ฝ์
ํด ๋์๊ฐ๋ ์ ๋ ฌ์
๋๋ค. ์์์ ์ด๋ฏธ ์ ๋ ฌ์ ์๋ฃํ๊ธฐ ๋๋ฌธ์ ..
๐ป JAVA/์๊ณ ๋ฆฌ์ฆ, ์๋ฃ๊ตฌ์กฐ
์๋
ํ์ธ์, ์๊ณ ๋ฆฌ์ฆ์ ์ ๋ฆฌํ๋ ํฌ์คํ
์
๋๋ค. ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ์ฐธ๊ณ ํ์๋ ค๋ฉด ํด๋น ์นดํ
๊ณ ๋ฆฌ๋ฅผ ์ด์ฉํด์ฃผ์ธ์. ๐ '๐ป JAVA/์๊ณ ๋ฆฌ์ฆ, ์๋ฃ๊ตฌ์กฐ' ์นดํ
๊ณ ๋ฆฌ์ ๊ธ ๋ชฉ๋ก ๊ณต๋ถํ ๊ฒ๋ค ์ ๋ฆฌํ ๋ด์ฉ์ ํฌ์คํ
ํฉ๋๋ค. iseunghan.tistory.com ์ ํ ์ ๋ ฌ (Selection Sort) ์ ๋ ฌํ์ฌ ์์๋ฅผ ๋ฐฐ์นํ ์๋ฆฌ๋ฅผ ๋ฏธ๋ฆฌ ์ ํด๋๊ณ , ํด๋น ์๋ฆฌ์ ๋ฃ์ ์์๋ฅผ ์ ํํ๋ ์๊ณ ๋ฆฌ์ฆ์
๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ์ฝ์
์ ๋ ฌ๊ณผ ํท๊ฐ๋ฆฐ ์ ๋ ฌ,, ์ ํ ์ ๋ ฌ์ ๋ฃ์ ์๋ฆฌ๋ฅผ ๋ฏธ๋ฆฌ ์ง์ ํ๊ณ , ์ฝ์
์ ๋ ฌ์ 1 ๋ฒ์งธ๋ถํฐ n๋ฒ์งธ ์์๋ฅผ ์์ ์์์ ๋น๊ตํ๋ฉฐ ์ฝ์
ํด ๋๊ฐ๋ ์ฐจ์ด๊ฐ ์๋ค. (ํท๊ฐ๋ฆผ..) ์๊ฐ ๋ณต์ก๋ : O(N^2) ๊ณต๊ฐ ๋ณต์ก๋ : O(N) ๋ถ์์ ์ ๋ ฌ ๊ณผ์ ๋จผ์ 1 ๋ฒ์งธ ์๋ฆฌ์ ์ฌ ์์๋ฅผ ์ ํํ ๊ฒ์
๋๋ค. ์ฒซ ๋ฒ์งธ ์์๋ถํฐ ๋ง์ง๋ง..
๐ป JAVA/์๊ณ ๋ฆฌ์ฆ, ์๋ฃ๊ตฌ์กฐ
์๋
ํ์ธ์, ์๊ณ ๋ฆฌ์ฆ์ ์ ๋ฆฌํ๋ ํฌ์คํ
์
๋๋ค. ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ์ฐธ๊ณ ํ์๋ ค๋ฉด ํด๋น ์นดํ
๊ณ ๋ฆฌ๋ฅผ ์ด์ฉํด์ฃผ์ธ์. ๐ '๐ป JAVA/์๊ณ ๋ฆฌ์ฆ, ์๋ฃ๊ตฌ์กฐ' ์นดํ
๊ณ ๋ฆฌ์ ๊ธ ๋ชฉ๋ก ๊ณต๋ถํ ๊ฒ๋ค ์ ๋ฆฌํ ๋ด์ฉ์ ํฌ์คํ
ํฉ๋๋ค. iseunghan.tistory.com Quick Sort Quick Sort๋ real-world ๋ฐ์ดํฐ์์ ๋น ๋ฅด๋ค๊ณ ์๋ ค์ ธ ๊ฐ์ฅ ๋ง์ด ์ฐ๋ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์
๋๋ค. pivot์ด๋ผ๋ ๊ฒ์ ์ง์ ํ์ฌ pivot ์ผ์ชฝ์ผ๋ก๋ pivot๋ณด๋ค ์์ ๊ฐ๋ค์, ์ค๋ฅธ์ชฝ์๋ pivot๋ณด๋ค ํฐ ๊ฐ๋ค์ ์ฌ๋ฐฐ์นํ๋ฉฐ, ๊ณ์ํ์ฌ ๋ถํ ํ์ฌ ์ ๋ ฌํ๋ ์๊ณ ๋ฆฌ์ฆ์
๋๋ค. Quick Sort๋ ๋ถํ ์ ๋ณต ๋ฐฉ๋ฒ์ ํตํด ์ ๋ ฌํฉ๋๋ค. Merge Sort์ ๋ฌ๋ฆฌ Quick Sort๋ ๋น๊ท ๋ฑํ๊ฒ ๋ถํ ํฉ๋๋ค. ๋ถ์์ ์ ๋ ฌ์ ์ํฉ๋๋ค. ์๊ฐ ๋ณต์ก๋ : ..