강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

냠냠님의 프로필 이미지
냠냠

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

1. 선택정렬

for문에서 i 범위

작성

·

157

0

for문에서 i의 범위를 arr.length이 아니라 arr.length-1로 해야하지 않나요??

선택정렬은 arr[i]뒷부분에서 최솟값을 찾는 것으로 이해했어요,  arr.length로 설정한다면, 맨 마지막 원소도 for문을 실행할텐데요.. 최솟값을 비교할 원소가 없는데 말이에요

범위를 어떻게 설정해야 할까요? 아래처럼 작성한 것도 정답인가요

      function solution(arr) {
        let answer = arr;
        for (let i = 0; i < arr.length - 1; i++) {
          let idx = i;
          for (let j = i + 1; j < arr.length; j++) {
            if (arr[idx] > arr[j]) {
              idx = j;
            }
          }
          [arr[i], arr[idx]] = [arr[idx], arr[i]];
          console.log(arr);
        }
        return answer;
      }

 

 

퀴즈

선택 정렬 알고리즘의 핵심 과정은 무엇일까요?

인접한 두 요소를 비교하여 순서가 맞지 않으면 교환합니다.

정렬되지 않은 부분에서 가장 작은 값을 찾아 정렬된 부분의 올바른 위치로 옮깁니다.

배열을 반으로 나누고 각 부분을 재귀적으로 정렬한 후 병합합니다.

하나의 요소를 정렬된 하위 배열의 올바른 위치에 삽입합니다.

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

네. 아무렇게 해도 상관없습니다.

냠냠님의 프로필 이미지
냠냠

작성한 질문수

질문하기