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
- 알고리즘
- 스파르톤
- HTML
- 이벤트맛집
- 개발도서추천
- 자료구조책
- 힙한취미
Archives
- Today
- Total
Run with coding
누구나 자료 구조와 알고리즘 | 긍정적인 시나리오 최적화 | 삽입 정렬 알고리즘 본문
✔️ 삽입 정렬
1. 인덱스 1의 값을 변수에 담아둔다.
2. 왼쪽의 값과 변수에 담아둔 값을 비교한다.
3. 왼쪽 값이 더 크다면 오른쪽으로 쉬프트, 작다면 해당 패스스루 끝내기
4. 쉬프트하여 빈 자리에 변수로 담아둔 값을 넣는다.
5. 마지막 인덱스까지 반복
✔️ 삽입 정렬 코드 구현
✔️ 삽입 정렬의 효율성
- 원소가 N개인 배열
- 비교 : 1 + 2 + 3 + … + (N-1) ⇒ 대략 N^2 / 2 번의 비교
- 시프트 : 1 + 2 + 3 + … + (N-1) ⇒ 대략 N^2 / 2 번의 비교
- 삭제 : N-1번
- 삽입 : N-1번
- 총 단계 수 : N^2 + 2N - 2단계
- 원소가 5개인 배열
- 비교 : 1 + 2 + 3 + 4 = 10번
- 시프트 : 1 + 2 + 3 + 4 = 10번
- 삭제 : 4번
- 삽입 : 4번
- 원소가 10개인 배열
- 비교 : 1 + 2 + 3 + … + 9 = 45번
- 시프트 : 1 + 2 + 3 + … + 9 = 45번
- 삭제 : 9번
- 삽입 : 9번
- 원소가 20개인 배열
- 비교 : 1 + 2 + 3 + … + 19 = 190번
- 시프트 : 1 + 2 + 3 + … + 19 = 190번
- 삭제 : 19번
- 삽입 : 19번
- 삽입 정렬의 총 단계 수 : N^2 + 2N - 2단계
- 빅 오는 상수를 무시한다 ⇒ O(N^2 + N)으로 정리
- but 다양한 차수가 한데 섞여 있을 때 빅 오 표기법은 가장 높은 차수의 N만 고려한다. ⇒ O(N^2)
why? N이 증가할수록 가장 높은 차수의 비중이 훨씬 크기 때문이다.
- but 다양한 차수가 한데 섞여 있을 때 빅 오 표기법은 가장 높은 차수의 N만 고려한다. ⇒ O(N^2)
- 빅 오는 상수를 무시한다 ⇒ O(N^2 + N)으로 정리
✔️ 두 배열의 교집합 구하기 - Javascript
'코딩테스트 | 자료구조 | 알고리즘' 카테고리의 다른 글
누구나 자료 구조와 알고리즘 | 일상적인 코드 속 빅 오 | Javascript로 단어 생성기 만들기 (0) | 2023.06.16 |
---|---|
누구나 자료 구조와 알고리즘 | 일상적인 코드 속 빅 오 | Javascript로 짝수의 평균 구하기 (0) | 2023.06.15 |
누구나 자료 구조와 알고리즘 | 빅 오를 사용하거나 사용하지 않는 코드 최적화 | 선택 정렬 (0) | 2023.05.20 |
누구나 자료 구조와 알고리즘 | 빅 오 표기법 | 빅 오로 코드 속도 올리기 (0) | 2023.05.19 |
누구나 자료 구조와 알고리즘 | 빅 오 표기법 (0) | 2023.05.18 |