Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
Tags
- CSS
- 반복줄이기
- javascript
- 폰트적용하기
- reactjs
- 2022
- React Native
- 티스토리꾸미기
- click and drag
- Chart.js
- 타입스크립트
- react
- TSDoc
- typescript
- 레이아웃쪼개기
- returnType
- 커스텀
- 타입좁히기
- NonNullable
- 공통컴포넌트
- vue.js
- JS console
- 제네릭
- 리액트
- utilty type
- const 단언문
- React.js
- 개발콘텐츠
- 누구나 자료구조와 알고리즘
- 성능최적화
Archives
- Today
- Total
몽땅뚝딱 개발자
누구나 자료구조와 알고리즘 - (6) 긍정적인 시나리오 최적화 본문
지금까지는 최악의 시나리오만 생각하여 빅오를 추론했다. 하지마 최악의 시나리오 외에 고려할 사항들이 있다. 정렬의 종류에는 버블 정렬, 삽입 정렬, 선택 정렬이 있는데 최악의 시나리오만을 고려했을 때 선택 정렬이 가장 나은 방법이라고 생각할 수 있다. 하지만 평균 시나리오도 중요하게 고려해야 한다.
삽입 정렬 | 선택 정렬 | |
정의 | 임의로 첫번째 인덱스의 값을 삭제한 뒤 임시 변수에 담아놓고 왼쪽에 있는 값을 비교하여 임시 변수에 있는 값보다 크면 값을 오른쪽으로 시프트하고 공백에 임시 변수에 있는 값을 담는다. | 최소값을 찾은 뒤 다음 인덱스와 교환한다. |
최악의 시나리오 | N²단계 | N² / 2단계 |
평균 시나리오 | N² / 2단계 | N² / 2단계 |
최선의 시나리오 | 약 N단계 | N² / 2단계 |
거의 정렬된 데이터를 다룰거라고 가정한다면 삽입 정렬을, 대부분 역순으로 정렬된 데이터를 다룰거라고 가정한다면 선택 정렬이 더 빠르다. 최악의 경우를 대비하는 것도 좋지만 대부분은 평균적인 경우가 일어난다는 점을 명심하자.
출처
제이 웹그로우, 누구나 자료구조와 알고리즘 (길벗, 2021)
개인적으로 공부한 내용을 정리하는 블로그로
잘못된 개념을 게시하지않도록 주의하고 있으나 오류가 있을 수 있습니다.
'Development > 알고리즘' 카테고리의 다른 글
누구나 자료구조와 알고리즘 - (8) 스택과 큐 (0) | 2023.09.28 |
---|---|
누구나 자료구조와 알고리즘 - (7) 해시 테이블 (0) | 2023.09.28 |
누구나 자료구조와 알고리즘 - (5) 빅 오를 사용하거나 사용하지 않는 코드 최적화 (0) | 2023.09.10 |
누구나 자료구조와 알고리즘 - (4) 빅 오로 코드 속도 올리기 (0) | 2023.09.10 |
누구나 자료구조와 알고리즘 - (3) 빅 오 표기법 (0) | 2023.08.27 |
Comments