2024. 1. 14. 21:43ใCS - Roadmap.sh/3. Common Algorithms
CS - 3. Common Algorithms - 3.1. Sorting - 3.1.2 Selection Sort
๐ก Selection sort is a sorting algorithm that selects the smallest unsorted item in the list and swaps it with index 0, then finds the next smallest and places it into index 1 and so on.
์ ํ ์ ๋ ฌ์ ๋ชฉ๋ก์์ ์ ๋ ฌ๋์ง ์์ ๊ฐ์ฅ ์์ ํญ๋ชฉ์ ์ ํํ์ฌ ์ธ๋ฑ์ค 0์ผ๋ก ๋ฐ๊พผ ๋ค์ ๋ค์์ผ๋ก ์์ ํญ๋ชฉ์ ์ฐพ์์ ์ธ๋ฑ์ค 1์ ๋ฐฐ์นํ๋ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
์ ํ ์ ๋ ฌ(Selection Sort)์ ์ด๋ฆ์์ ์ ์ ์๋ฏ์ด, ๊ฐ์ฅ ์ ์ ๊ฐ์ ์ ํํ์ฌ ์์ผ๋ก ์ฎ๊ธฐ๋ ๋ฐฉ์์ผ๋ก ์ ๋ ฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
์ ํ ์ ๋ ฌ์ ๋์ ๊ณผ์ ์ ์ด๋ฐ ์์ ๋๋ค.
1. ์ฃผ์ด์ง ๋ฆฌ์คํธ ์ค์์ ์ต์๊ฐ์ ์ฐพ์ต๋๋ค.
2. ๊ทธ ๊ฐ์ ๋ฆฌ์คํธ์ ๋งจ ์์ ์์นํ ๊ฐ๊ณผ ๊ต์ฒดํฉ๋๋ค.
3. ๋งจ ์ฒ์ ์์น๋ฅผ ์ ์ธํ ๋๋จธ์ง ๋ฆฌ์คํธ๋ฅผ ๋์์ผ๋ก ์์ ๊ณผ์ ์ ๋ฐ๋ณตํฉ๋๋ค.
4. ์ด ๊ณผ์ ์ด ๋๋๋ฉด ๋ฆฌ์คํธ๋ ์ ๋ ฌ๋ ์ํ๊ฐ ๋ฉ๋๋ค.
In Python
def selection_sort(arr):
for i in range(len(arr)):
min_idx = i
for j in range(i+1, len(arr)):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
return arr
์ ํ ์ ๋ ฌ์ ์๊ฐ ๋ณต์ก๋๋ O(n^2)๋ก, ๋ฒ๋ธ ์ ๋ ฌ๊ณผ ๋์ผํ๊ฒ ๋ฐ์ดํฐ์ ์์ด ๋ง์ง ์์ ๊ฒฝ์ฐ์ ํจ๊ณผ์ ์ ๋๋ค.
ํ์ง๋ง, ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐ์ดํฐ์ ์์ด ๋ง๊ฑฐ๋ ๋ฌด์์๋ก ๋ฐฐ์ด๋ ํต ์ ๋ ฌ, ๋ณํฉ ์ ๋ ฌ ๋ฑ์ด ๋ ํจ์จ์ ์ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋๊ฒ์ด ์ข๋ค!
'CS - Roadmap.sh > 3. Common Algorithms' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
3.1. Sorting - 3.1.6 Merge Sort (0) | 2024.01.20 |
---|---|
3.1 Sorting - 3.1.5 Quick Sort (0) | 2024.01.16 |
3.1 Sorting - 3.1.4 Heap Sort (0) | 2024.01.15 |
3.1. Sorting - 3.1.3 Insertion Sort (0) | 2024.01.15 |
3.1. Sorting - 3.1.1 Bubble sort (1) | 2024.01.13 |