2022/02/15) 1. 선택정렬 [정렬과 그리디, 결정알고리즘]

굥굥이·2022년 2월 15일
0
post-thumbnail

1. 문제

<선택정렬>
: N개의 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성한다. 정렬하는 방법은 선택정렬이다.

2. 해결 방법

  1. 먼저 선택정렬이란 가장 작은 데이터를 찾아서 가장 앞에 있는 데이터교환해 나가는 방식이다.
  2. 정리하면 중첩 for문을 돌리는데, 외부 for문이 가장 앞에 있는 데이터고, 내부 for문이 가장 작은 데이터를 찾는 거라고 생각하면 될 거 같다. 그리하여 내부 for문에서 가장 작은 데이터를 찾은 후 맨 앞에 있는 데이터와 자리를 변경하면 됨. idx는 그저 나중에 자리를 교환할 때 쓸 용도에 불과한 거 같다.

3. 정답

        <script>
            function solution(arr){
                let answer = arr;
                for(let i = 0; i < arr.length; i ++){
                    let idx=i; //idx를 i로 초기화하는 거 중요!!!
                    for(let j = i+1; j < arr.length; j++){
                        if(arr[j]<arr[idx]) idx = j;
                    }
                    [arr[i], arr[idx]] = [arr[idx], arr[i]];
                }
                return answer;
            }
            let arr=[13, 5, 11, 7, 23, 15];
            console.log(solution(arr));
        </script>
profile
아자아자 파이띵굥!

0개의 댓글