알고리즘 개념잡기 - Sort, 시간/공간복잡도

y1nlog·2025년 1월 21일
post-thumbnail

시간복잡도

코드 효율성 측정을 위해 실제 실행 시간이 얼마나 되는지 표현하는 방식.

실제 실행시간은

  • 컴퓨터의 처리 속도
  • 사용 언어
  • 컴파일러 속도

등에 영향을 받을 수 있다.

"입력값-연산수행" 시간의 상관관계를 나타내는 척도 (=코드의 시간적 효율성)

공간복잡도

프로그램 실행에 얼마나 많은 공간(메모리)이 필요한지 나타내는 척도 (= 공간적 효율성)

코딩테스트에서도 메모리를 적게 쓰는 것이 중요함.

정렬 알고리즘

데이터 정렬(오름차순, 내림차순 등)
데이터 처리 및 검색의 효율성을 높이는 데 필수적이다.

데이터의 특성과 시간/공간복잡도에 따라 적절한 정렬 기법을 사용하게 된다.

버블 정렬(Bubble Sort)

두 개의 인접 데이터를 비교하여, 큰 값을 뒤로 보내는 과정을 반복해 배열을 정렬하는 방식.

선택 정렬(Selection Sort)

배열에서 가장 작은 값을 찾아 첫 번째 위치에 배치하는 방식으로 정렬.

팀 정렬(Tim Sort)

Merge sort를 기반으로 run을 나누는 방식으로 최적화 기법을 도입한 정렬 알고리즘.
자바스크립트의 sort 메서드는 Tim Sort와 동일한 내부 로직을 가지고 있다.

Merge sort는 전체 배열을 반으로 나누고 정렬을 하고, 다시 합치는 과정을 반복하며 정렬하는 방식

공부 자료

알고리즘 시각화 플랫폼
알고리즘캔버스

profile
FE / Data Science

0개의 댓글