[알고리즘]section 7-1_선택정렬

Yul·2022년 5월 25일
0

Algorithm

목록 보기
8/9
post-thumbnail

문제

선택 정렬

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

  • 입력예제
    6
    13 5 11 7 23 15

  • 출력예제
    5 7 11 13 15 23

문제풀이

answer에 arr를 얕은 복사 -> 둘 다 a 배열을 가리키는 것. 둘 중 하나를 변경해도 값이 같이 바뀜
1. i와 j로 이중 for문 탐색
2. idx변수는 i의 초기 인덱스 값을 넣어줌
3. j의 for문이 돌며 arr의 j와 idx 인덱스 요소가 비교되며 j 자리의 요소값이 더 작으면 idx변수에 j를 넣어준다.
4. [arr[i], arr[idx]] = [arr[idx], arr[i]] 구조 분해 할당으로 배열의 자리를 서로 바꿔준다 temp변수를 사용해서 변경할 수도 있다. (https://2-juhyun-2.tistory.com/37 참고)

코드_선생님의 코드

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[j] < arr[idx]) idx = j;
    }
    [arr[i], arr[idx]] = [arr[idx], arr[i]];
  }
  return answer;

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

노트

배열의 자리를 어떻게 바꾸는지 참고

출처: https://inf.run/CPjy

profile
자바스크립트 도장깨기👊

0개의 댓글