발행일

코딩 테스트 개요 및 문제 풀이를 위한 자바스크립트 문법 03

코딩 테스트 개요 및 문제 풀이를 위한 자바스크립트 문법 03

이 글은 네이버 블로그에 2024년 2월 4일에 올렸던 것을 그대로 옮겨온 것입니다.

선택 정렬

선택 정렬은 매 단계에서 가장 작은 원소를 선택해서 앞으로 보내는 정렬 방법

앞으로 보내진 원소는 더 이상 위치가 변경 되지 않는다.

시간 복잡도는 비효율적인 알고리즘 중 하나다.

각 단계에서 가장 작은 원소를 선택

image

현재까지 처리 되지 않은 원소들 중 가장 앞의 원소와 위치 교체

선택 정렬이란 가장 작은 것을 선택해서 앞으로 보내는 정렬기법

매 단계에서 가장 작은 것을 선택하는데 약 N번의 연산이 필요하다.

결과적으로 n^2 의 시간 복잡도를 가진다.

버블 정렬

단순히 인접한 두 원소를 확인하여, 정렬이 안 되어 있다면 위치를 서로 변경

서로 인접한 두 원소를 비교하는 형태가 거품과 같다고 붙여진 이름이다.

시간 복잡도 n^2

각 단계에서는 인접한 두개의 원소를 비교하여 필요시 위치 변경

한 번의 단계가 수행되면, 가장 큰 원소가 맨뒤로 이동한다.

따라서, 그 다음 단계에서는 맨뒤로 이동한 데이터는 정렬에서 제외

각 단계를 거칠 때마다 가장 큰 값을 하나씩 확실하게 결정하는 것으로 이해

image

삽입 정렬

삽입 정렬 : 각 숫자를 적절한 위치에 삽입하는 정렬 기법

각 단계에서 현재 원소가 삽입될 위치

적절한 위치에 도달 될때까지 반복적으로 왼쪽으로 이동

삽입 정렬이란 각 원소를 적절한 위치에 삽입 하는 정렬

매 단계에서 현재 처리 중인 원소가 삽입 처리 N

image

병합 정렬

분할 정복 알고리즘

분할 : 큰 문제를 작은 부분으로 분할

정복 : 작은 부분 문제를 각각 해결

조합 : 해결한 부분 문제의 답을 이용하여 다시 큰 문제를 해결

분할 정복은 일반적으로 재귀함수로

분할 하는 방식이 동일

정복

각 부분 배열은 이미 정렬된 상태

첫째 원소부터 시작하여 하나씩 확인

총 원소 개수가 N개 일때 시간 복잡도 요구 N

image
image

정렬 기준 함수 > 우선 순위

  1. 반환 값이 0보다 작은 경우

  2. 반환 값이 0보다 큰 경우

  3. 반환 값이 0인 경우

정렬 기준 함수를 사용하지 않으면 각 원소는 문자열 취급

유니코드 값 순서대로 정렬

image
image
image
image

대소문자를 구분하지 않도록 > toUpperCase() 메서드 써라