Search

์„ ํƒ์ •๋ ฌ

์„ ํƒ ์ •๋ ฌ (Selection Sort)

์„ ํƒ ์ •๋ ฌ์€ ๋ฐฐ์—ด์—์„œ ์ตœ์†Œ๊ฐ’์„ ์ฐพ์•„ ๋งจ ์•ž์˜ ์›์†Œ์™€ ๊ตํ™˜ํ•˜๋Š” ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜์—ฌ ์ •๋ ฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ์š”์†Œ

โ€ข
๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ ์ตœ์†Œ๊ฐ’์„ ์ฐพ์•„ ๋งจ ์•ž๋ถ€ํ„ฐ ์ฑ„์›Œ๋‚˜๊ฐ€๋Š” ๋ฐฉ์‹
โ€ข
๋‘ ๊ฐœ์˜ ์„œ๋ธŒ ๋ฆฌ์ŠคํŠธ๋กœ ๋‚˜๋ˆ„์–ด ์ •๋ ฌ ์ง„ํ–‰
โ€ข
์ œ์ž๋ฆฌ ์ •๋ ฌ(in-place sorting) ์•Œ๊ณ ๋ฆฌ์ฆ˜

์‹œ๊ฐ„ ๋ณต์žก๋„

์ตœ์„ ์˜ ๊ฒฝ์šฐ
O(nยฒ)
ํ‰๊ท ์˜ ๊ฒฝ์šฐ
O(nยฒ)
์ตœ์•…์˜ ๊ฒฝ์šฐ
O(nยฒ)

์ฃผ์š” ํŠน์ง•

โ€ข
์žฅ์ 
โ—ฆ
๊ตฌํ˜„์ด ๊ฐ„๋‹จํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์›€
โ—ฆ
์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๊ฑฐ์˜ ํ•„์š”ํ•˜์ง€ ์•Š์Œ
โ—ฆ
์•ˆ์ •์ ์ธ ์ •๋ ฌ ๋ฐฉ์‹
โ€ข
๋‹จ์ 
โ—ฆ
์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ O(nยฒ)์œผ๋กœ ๋น„ํšจ์œจ์ 
โ—ฆ
๋ฐ์ดํ„ฐ ์–‘์ด ๋งŽ์„์ˆ˜๋ก ์„ฑ๋Šฅ ์ €ํ•˜

์˜ˆ์‹œ ์ฝ”๋“œ

์ง์ ‘ ๊ตฌํ˜„

public class SelectionSort { public static void selectionSort(int[] arr) { int n = arr.length; for (int i = 0; i < n-1; i++) { int minIdx = i; // ์ตœ์†Œ๊ฐ’ ์ฐพ๊ธฐ for (int j = i+1; j < n; j++) { if (arr[j] < arr[minIdx]) { minIdx = j; } } // ์ตœ์†Œ๊ฐ’์„ ํ˜„์žฌ ์œ„์น˜์™€ ๊ตํ™˜ int temp = arr[minIdx]; arr[minIdx] = arr[i]; arr[i] = temp; } } }
Java
๋ณต์‚ฌ