-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Algorithm] 삽입 정렬 #194
base: main
Are you sure you want to change the base?
[Algorithm] 삽입 정렬 #194
Conversation
- 알고리즘이 단순하다. | ||
|
||
- 대부분의 원소가 이미 정렬되어 있는 경우, 매우 효율적일 수 있다. | ||
|
||
- 정렬하고자 하는 배열 안에서 교환하는 방식이므로, 다른 메모리 공간을 필요로 하지 않는다. => 제자리 정렬(in-place sorting) | ||
|
||
- 안정 정렬(Stable Sort) 이다. | ||
|
||
- 선택정렬과 같은 O(n^2) 알고리즘에 비교해서 상대적으로 빠르다. | ||
|
||
### **단점** | ||
|
||
- 최악, 평균일때 시간복잡도가 O(n^2)으로, 비효율적이다. | ||
|
||
- 길이가 길어질수록 비효율적이다. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
### **장점** | |
- 알고리즘이 단순하다. | |
- 대부분의 원소가 이미 정렬되어 있는 경우, 매우 효율적일 수 있다. | |
- 정렬하고자 하는 배열 안에서 교환하는 방식이므로, 다른 메모리 공간을 필요로 하지 않는다. => 제자리 정렬(in-place sorting) | |
- 안정 정렬(Stable Sort) 이다. | |
- 선택정렬과 같은 O(n^2) 알고리즘에 비교해서 상대적으로 빠르다. | |
### **단점** | |
- 최악, 평균일때 시간복잡도가 O(n^2)으로, 비효율적이다. | |
- 길이가 길어질수록 비효율적이다. | |
### **장점** | |
- 알고리즘이 단순하다. | |
- 대부분의 원소가 이미 정렬되어 있는 경우, 매우 효율적일 수 있다. | |
- 정렬하고자 하는 배열 안에서 교환하는 방식이므로, 다른 메모리 공간을 필요로 하지 않는다. => 제자리 정렬(in-place sorting) | |
- 안정 정렬(Stable Sort) 이다. | |
- 선택정렬과 같은 O(n^2) 알고리즘에 비교해서 상대적으로 빠르다. | |
### **단점** | |
- 최악, 평균일때 시간복잡도가 O(n^2)으로, 비효율적이다. | |
- 길이가 길어질수록 비효율적이다. | |
|
||
``` | ||
### **시간 복잡도** |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
아래 내용 가독성이 🥲
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
불필요한 단어나 줄 정리가 조금 필요할 것 같아요
시간복잡도 등의 내용을 위로 올리고, 구현 코드는 문서 맨 마지막에 오는 게 좋을 것 같습니다.🤔 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- [Algorithm] 선택 정렬 #195 (review)
선택 정렬 리뷰 참고해서 재검토 부탁드립니다.🙇🏻♀️
### **시간 복잡도** | ||
|
||
**최악** 의 경우(역으로 정렬되어 있을 경우) 선택정렬과 마찬가지로, (n-1) + (n-2) + .... + 2 + 1 => n(n-1)/2 즉, O(n^2) 이다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
**최악** 의 경우(역으로 정렬되어 있을 경우) 선택정렬과 마찬가지로, (n-1) + (n-2) + .... + 2 + 1 => n(n-1)/2 즉, O(n^2) 이다. | |
**최악** 의 경우(역으로 정렬되어 있을 경우) 선택정렬과 마찬가지로, (n-1) + (n-2) + .... + 2 + 1 => n(n-1)/2 이 소요된다. 즉, O(n^2) 이다. |
또한, 이미 정렬되어 있는 배열에 자료를 하나씩 삽입/제거하는 경우에는, 현실적으로 최고의 정렬 알고리즘이 되는데, 탐색을 제외한 오버헤드가 매우 적기 때문이다. | ||
|
||
최선의 경우는 **O(n)** 의 시간복잡도를 갖고, 평균과 최악의 경우 **O(n^2)** 의 시간복잡도를 갖게 된다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
최선의 경우는 **O(n)** 의 시간복잡도를 갖고, 평균과 최악의 경우 **O(n^2)** 의 시간복잡도를 갖게 된다. | |
정리해보면 최선의 경우는 **O(n)** 의 시간복잡도, 평균과 최악의 경우 **O(n^2)** 의 시간복잡도를 갖게 된다. |
|
||
``` | ||
### **시간 복잡도** |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
불필요한 단어나 줄 정리가 조금 필요할 것 같아요
Summary
Check List