์๋ ํ์ธ์, ๊ฐ์์ ๋๋ค. ์ค์ํํธ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐฐ์ด์ด๋ ๋ฌธ์์ด ๋ฑ์ ์ ๋ ฌํด์ฃผ๋ ๋ฉ์๋ sort ๊ธฐ๋ฅ์ ์ง์ํ๋๋ฐ์. sort()์ sorted() ๋๊ฐ์ง๊ฐ ์์ต๋๋ค. ๋๊ฐ์ง์ ์ฐจ์ด์ ์ ๋ํด์ ์๊พธ์๊พธ ๊น๋จน์ด์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค.
1. sort(by: )
๋จผ์ sort(by: ) ๋ฉ์๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ์ง์ํฉ๋๋ค. ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ์ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด, sorted(by: >) ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
var arr = [133, 2, 321, 5423, 4]
arr.sort()
print(arr) // [2, 4, 133, 321, 5423]
arr.sort(by: >)
print(arr) // [5423, 321, 133, 4, 2]
sort() ๋ฉ์๋๋ ์ ์๋ฆฌ์์ ์ ๋ ฌํ๊ธฐ ๋๋ฌธ์ arr.sort()ํ๋ฉด ์ ๋ ฌ๋ ๋ฐฐ์ด์ด ๋ค์ return ๋์ง ์์ต๋๋ค.
(ํด๋น ๋ฉ์๋์ ์๊ฐ๋ณต์ก๋๋ O(nlogn)์ด๊ณ n์ collection์ ๊ธธ์ด)
2. sorted(by: )
sorted(by: ) ๋ฉ์๋๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ค๋ฆ์ฐจ์์ ์ง์ํ๋ฉฐ, sorted(by: >)๋ฅผ ์ฌ์ฉํ๋ฉด ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ฌ์ฉ๊ฐ๋ฅํฉ๋๋ค. sorted() ๋ฉ์๋๋ ์ถ๊ฐ๋ก, ์ ๋ ฌ๋ ๋ฐฐ์ด์ ๋ค์ ๋ฆฌํดํด์ค๋ค๋ ์ ์์ sort์ ์ฐจ์ด์ ์ด ์์ต๋๋ค.
var arr = [133, 2, 321, 5423, 4]
arr.sorted()
print(arr) // [133, 2, 321, 5423, 4]
์ ์ฝ๋๋ฅผ ๋ณด๋ฉด, sorted() ํด์ ์ ๋ ฌ์ ํ์ง๋ง, ์ ๋ ฌ๋ ๋ฐฐ์ด์ return ๋ง ํ๊ณ , arr ์์ฒด๋ฅผ ์ ๋ ฌํด์ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ arr๋ฅผ ์ถ๋ ฅํด๋ณด๋ฉด, ์ฒ์์ ์ ์๋ ๊ทธ๋๋ก ์ถ๋ ฅ๋ฉ๋๋ค. ๋ฐ๋ผ์ sorted() ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ , ์๋ก์ด ๋ณ์์ ์ ์ฅํด์ ์ฌ์ฉํ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
var arr = [133, 2, 321, 5423, 4]
var newArr = arr.sorted()
print(newArr) //[2, 4, 133, 321, 5423]
์๊ฐ ๋ณต์ก๋๋ sort() ๋ฉ์๋์ ๋์ผํฉ๋๋ค.
๋ค์ ์ ๋ฆฌํ์๋ฉด, sort() ๋ ๋ฐฐ์ด ์์ฒด๋ฅผ ์ ๋ ฌ, sorted() ๋ ์ ๋ ฌ๋ ๋ฐฐ์ด์ ์๋กญ๊ฒ ๋ฆฌํด ํด์ค. ์ด๋ ๊ฒ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ๋ฐฐ์ด์ ์์๊ฐ ์ค์ํ ์ฝ๋๋ฅผ ์์ฑํ ๋, sort() ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ๋ฐฐ์ด์์ฒด์ ์์๋ฅผ ๋ฐ๊ฟ๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์ฌ๊ฐํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ํ์ง๋ง sorted()๋ ๊ฐ์ ๋ณต์ ํ์ฌ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํด์ ๋ฆฌํดํ๊ธฐ ๋๋ฌธ์, ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋๋ฐฐ๋ก ์ฌ์ฉ๋๋ค๋ ์น๋ช ์ ์ธ ๋จ์ ์ด ์์ต๋๋ค.
์ด๋ค ์ํฉ์์ sorted / sort ๋ฅผ ์ฌ์ฉํ๋๋์ ๋ฐ๋ผ ์ฑ๋ฅ์ ์ฐจ์ด๋ ๋ฐ์ํ๊ฒ ๋ค์.