본문 바로가기
알고리즘

[알고리즘] 선택정렬

by 헤이봄봄 2022. 2. 6.
선택정렬

 

 

 

 

 

N개이 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 선택정렬을 사용해서 작성하세요.

 

 

 

 

입력설명

첫 번째 줄에 자연수 N(1<=N<=100)이 주어집니다.
두 번째 줄에 N개의 자연수가 공백을 사이에 두고 입력됩니다. 각 자연수는 정수형 범위 안에 있습니다.

출력설명

오름차순으로 정렬된 수열을 출력합니다.

입력예제

13 5 11 7 23 15

출력예제

5 7 11 13 15 23

 

 

 

 

선택정렬은

리스트에서 가장 최소값을 찾은 후 맨앞위치와 교환하고,

그 다음최소값을 찾으면 두번째 위치와 교환,

그 다음최소값을 찾으면 세번째 위치와 교환 ... 하는 방식이다.

 

 

선택정렬을 사용하면서 

javascript 최신버젼으로 배열 idx요소와 특정요소의 데이터를 교환해서 저장해주는 기능을 지원해준다는 사실을 알게되었다.

 

function solution(arr){
    let answer=arr;
    //오름차순 선택정렬로 ! 
    for(let i=0; i<arr.length-1; i++){
        for(let j=i+1; j<arr.length; j++){
            let idx = i;
            if(arr[i] > arr[j]){
                idx = j;
            }
            [arr[idx],arr[i]] = [arr[i],arr[idx]] //최근에 추가된 자바스크립트 기능
        }
    }
    
    return answer;
}

let arr=[13, 5, 11, 7, 23, 15];
console.log(solution(arr));

 

 

댓글