
์ ๋ ฅ : ๊ฐ์ ํ์ ์ ๋ณ์๋ฅผ ๊ฐ์ง ๋ฐฐ์ด
์ถ๋ ฅ : ํด๋น ํ์ ์ ์ค๋ฆ์ฐจ์ / ๋ด๋ฆผ์ฐจ์์ ๋ฐ๋ฅธ ์ ๋ ฌ๋ ๋ฐฐ์ด
๋น ์ค ํ๊ธฐ๋ฒ : O(n^2)
*๋น ์ค ํ๊ธฐ๋ฒ์ ๋ํด.
O(n) : ๋ชจ๋ ์์๋ฅผ ํ ๋ฒ์ฉ ๊ฑด๋๋ ค์ผ ํ๋ค๋ ๋ป.
์) ๊ฐ์ ๋ชฉ๋ก์์ ๊ฐ์๋ฅผ ์ฐพ์๋ณด์. ์ด ์ค ๊ฐ์ฅ ์ฐ์ฃผ ํ์๊ฐ ๊ฐ์ฅ ๋ง์ ๊ฐ์๋ฅผ ์ฐพ๊ธฐ ์ํด์ ๋ชจ๋ ํญ๋ชฉ์ ์ ๊ฒํด์ผํจ.
-> ๋ชจ๋ ํญ๋ชฉ์ ์ ๊ฒํ๋ฏ๋ก O(n), ์ด๋ฅผ n๋ฒ ๋ฐ๋ณตํด์ ๋ชฉ๋ก์ ์ ๋ ฌํด์ผํจ. => O(n)
#javascript
var list = [3,55,1,33, 44, 20, 9, 7, 15, 49];
console.log("Before Selection Sort : " + list);
console.log("After Selection Sort : ");
console.log(selectionSort(list));
function findSmallest(_list)
{
var min = _list[0];
for(var i = 0 ; i < _list.length ; ++i)
{
if(min > _list[i])
min = _list[i];
}
return min;
}
function selectionSort(_list)
{
var ascList = [];
var smallest = -1;
var len = _list.length;
for(var i = 0 ; i < len ; ++i)
{
smallest = findSmallest(_list);
var idx = _list.indexOf(smallest);
ascList.push(_list[idx]);
_list.splice(idx, 1);
}
console.log(ascList);
}
์ ํ์ ๋ ฌ์ ๊น๋ํ ์๊ณ ๋ฆฌ์ฆ์ด์ง๋ง ๋น ๋ฅด์ง ์์.
๋๊ธ