๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์‹œ์Šคํ…œ๊ฐœ๋ฐœ/์ž๋ฃŒ๊ตฌ์กฐ๋ž‘์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณต๋ทฐ

์„ ํƒ ์ •๋ ฌ, Selection Sort

by ์ด๋…ธํ‚ค_ 2019. 5. 19.

์นจ๋Œ€์œ„์˜ ์–‘๊ฐฑ. ํˆฌ๋จธ์น˜ ํด๋กœ์ฆˆ์—….

์ž…๋ ฅ : ๊ฐ™์€ ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง„ ๋ฐฐ์—ด

์ถœ๋ ฅ : ํ•ด๋‹น ํƒ€์ž…์˜ ์˜ค๋ฆ„์ฐจ์ˆœ / ๋‚ด๋ฆผ์ฐจ์ˆœ์— ๋”ฐ๋ฅธ ์ •๋ ฌ๋œ ๋ฐฐ์—ด

๋น…์˜ค ํ‘œ๊ธฐ๋ฒ• : 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);
}

 

์„ ํƒ์ •๋ ฌ์€ ๊น”๋”ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด์ง€๋งŒ ๋น ๋ฅด์ง„ ์•Š์Œ.

๋Œ“๊ธ€