알고리즘

선택정렬

살다보니개발자 2022. 12. 13. 22:25

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

 

 

입력예제

13 5 11 7 23 15

 

 

출력예제

5 7 11 13 15 23

 

 

function solution(arr){

    // arr 배열 매개변수 얕은복사 저장 얕은복사라 arr가 바뀌면 answer도 바뀜
    let answer=arr;

    //요소와 요소를 비교해 어떤 요소가 더 작은지 찾기 위해 이중 For문 실행
    for(let i=0; i<arr.length; i++){

        //비교할 인덱스
        let idx=i;

        //idx 와 비교를 위해 for문 실행
        for(let j=i+1; j<arr.length; j++){

            //arr[idx] 보다 arr[j] 가 작다면 idx 는 j가 된다 계속 해서 작은걸 찾아야하니 제일 작은 요소 인덱스를 idx에 저장
            if(arr[j]<arr[idx]) idx=j;
        }

        //비교했던 arr[i] 와 arr[idx] 의 위치 변경
        [arr[i], arr[idx]] = [arr[idx], arr[i]];
    }
    return answer;
}

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

 

 

sort 함수를 이용해 오름차순 정렬도 가능하다.

function solution1(arr){
    let answer;

    answer = arr.sort((a,b) => a-b);

    return answer;
}

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

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

 

Array.prototype.sort() - JavaScript | MDN

sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환합니다. 정렬은 stable sort가 아닐 수 있습니다. 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따릅니다.

developer.mozilla.org

 

'알고리즘' 카테고리의 다른 글

Special Sort(구글 인터뷰)  (0) 2022.12.18
버블정렬  (0) 2022.12.15
교육과정설계(큐)  (0) 2022.12.12
공주구하기(큐)  (0) 2022.12.11
쇠막대기(스택)  (0) 2022.12.07