- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- nestjs #openai #api키 #호출방법 #ai활용 #ai연동 #aikey연결하기 #환경변수파일
- 한옥녹턴
- nestjs 프로젝트 생성 명령어
- 황리단길감성숙소
- 경주동취
- 경주황리단길한옥숙소
- 경주프렙후기
- nestjs 마이크로서비스 설치 시 발생하는 의존성 충돌 해결하기
- 진학사 코딩테스트 후기
- 경주황리단길자쿠지
- 경주전통주
- 서울템플스테이데이트
- 금선사템플스테이
- 경주3박4일여행일정
- 함수 이름
- 진학사 어플라이 면접 후기
- 경주한옥자쿠지숙소
- 황리단길자쿠지
- 서울템플스테이추천
- 경주프렙
- 경주맛집추천
- 하나은행 코딩 테스트 후기
- 면접준비 #면접컨설팅 #면접질문 #면접모의질문 #답변구조화 #모의면접 #모의면접컨설팅 #면접컨설팅후기
- 금선사데이트
- 경주프렙칵테일
- 템플스테이1월
- 구글애드센스신청 #구글애드센스 #구글애드센스시작하는방법 #구글애드센스티스토리 #블로그에구글애드센스 #티스토리 #구글애드센스가입 #구글애드센스등록
- 경주술
- 금선사숙소
- 경주11월날씨
notcherry
[삽입 정렬] & [퀵 정렬] & [병합 정렬] & [기수 정렬] 본문
삽입 정렬이란?
이미 정렬된 데이터 범위에서 정렬되지 않은 데이터를 적절한 위치에 삽입시켜 정렬하는 방식이다.
시간복잡도도 O(㎡)로 느린 편이지만 구현하기 쉽다!
선택 데이터는 현재 정렬된 데이터 범위내에서 정확한 위치에 삽입하는 것이 중요하다.
퀵 정렬이란?
기준값(피벗)을 선정해 해당 값보다는 작은 데이터와 큰 데이터로 분류하는 것을 반족해 정렬하는 방식이다.
기준값에 따라 시간 복잡도에 많은 영향을 미치고 평균 시간 복잡도(O(nlogn))이며 최악의 경우에는 시간 복잡도가 O(㎡)! -> 시간복잡도가 불규칙하며 운이 따르는 알고리즘임 ㅜ.ㅜ
따라서 피벗을 설정하는 것이 가장 중요하며 투 포인터(start, end)를 설정하여 피벗과 비교하며 정렬한다.
오름차순으로 정렬
42 32 24 60 15 5 90 45 -> pivot: 45, start : 42, end: 90, 피벗은 무조건 오른쪽 값으로 설정한 상태.
42 32 24 60 15 5 90 45 -> pivot: :45, start: 32, end: 5, end<pivot 이므로 end는 stop
42 32 24 60 15 5 90 45
42 32 24 60 15 5 90 45 -> 60이 처음으로 피벗보다 큰 수이므로 60과 5 swap
42 32 24 5 15 60 90 45 -> start와 end가 만나는 지점인 15와 피벗 비교, -> 피벗이 더 큼
42 32 24 5 15 45 60 90 -> 피벗 중심으로 왼쪽은 45 보다 작고, 오른쪽은 45 보다 큼. 15가 기준이 됨.
42 32 24 5 15 45 60 90 -> pivot: 15 & 90, start : 42, end: 5 , start>end -> swap, 60과 90 비교
5 32 24 42 15 45 60 90 -> pivot: 15, start : 32, end: 24, end>pivot -> end이동 -> start 지점과 만남
5 15 24 42 32 45 60 90 -> 32와 15 비교 -> swap
5 15 24 42 32 45 60 90 -> pivot: :32, start: 24, end: 42
5 15 24 32 42 45 60 90
전혀 퀵하지 않은,,,,
병합 정렬이란? -> 활용하면 정말 좋은 알고리
분합 정복 방식(데이터를 나)을 사용해 데이터를 분할하고 분할한 집합을 정렬하며 합치는 알고리즘이다.
시간복잡도는 O(nlogn)이다.
2개의그룹을 병합하는 과정
투 포인터 개념을 사용해 왼쪽,오른쪽 그룹을 병합한다.
(나눈 두 그룹은 현재 정렬된 상태라고 가정)
24 32 42 60 5 15 45 90 -> 24와 5 비교 -> 5
24 32 42 60 5 15 45 90 -> 24와 15 비교 -> 5 15
24 32 42 60 5 15 45 90 -> 24와 45 비교 -> 5 15 24
24 32 42 60 5 15 45 90 -> 32와 45 비교 -> 5 15 24 32
24 32 42 60 5 15 45 90 -> 42와 45 비교 -> 5 15 24 32 42
24 32 42 60 5 15 45 90 -> 60와 45 비교 -> 5 15 24 32 42 45
24 32 42 60 5 15 45 90 -> 60와 90 비교 -> 5 15 24 32 42 45 60
남은 90은 그냥 써주기, 최종 정렬된 배열 -> 5 15 24 32 42 45 60 90
기 정렬이란?
비교할 자릿수를 정한 후 자릿수만 비교하는 특이한 정렬이다.
시간복잡도도 O(kn)로 k는자릿수를 말한다,
기수 정렬은 10개의 큐(0~9)를 이용한다. 각 큐는 값의 자릿수를 뜻한다.
난이도는 있지만 시간복잡도가 좋아서 활용해보면 좋음!
'코딩테스트' 카테고리의 다른 글
[이진 탐색] 백준 1920 (0) | 2024.02.28 |
---|---|
[깊이 우선 탐색 DFS] 백준 11724 (0) | 2024.02.27 |
[선택 정렬] 백준 1427 (1) | 2024.02.27 |
[버블 정렬] 백준 2750 (0) | 2024.02.27 |
[슬라이딩 윈도우 실전문제] DNA 비밀번호 - 백준12891 (1) | 2024.02.26 |