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
- slack bot
- django slack
- 개발회고
- django 슬랙봇
- haystack
- 비즈니스적 관점에서 생각하는 개발자 #개발자 마인드
- 웹소켓 api
- 개발자와 비즈니스 관계
- 개발자의 마인드
- AWS Aurora
- add colume
- 비즈니스
- 슬랙봇
- 개발자에세이
- 숲을 바라보는 개발자
- 알고리즘
- public.pem
- django slack bot
- django
- 서버 개발
- django #django 5.0 #django 5.0 요약
- 개발자와 비즈니스
- 업비트 웹소켓
- redis lock
- 정렬
- MySQL
- 비즈니스적 관점에서 생각하는 개발자
- 백엔드 개발
- ssl.key
- private.pem
Archives
- Today
- Total
Info-Tech
Merge Sort 본문
최악일때도 (nlogn)
N개를 정렬하는 알고리즘이다.
n개를 n/2로 나눈다.
그리고 왼쪽 n/2개와 오른쪽 n/2를 정렬한다.
정렬한 결과를 합친다.
void sort(int start, int end){
if (start == end){
return;
}
int mid = (start+end)/2;
sort(start, mid);
sort(mid+1,end);
merge(start,end);
}
void merge(int start, int end){
int mid = (start+end)/2;
int s = start;
int j = mid+1;
int k = 0;
//위에서 정해진 구간에 맞게끔 값 넣어주기
while( s <= mid && j <=end){
//앞에꺼 그대로 저장
if(a[s] <= a[j]{
b[k++] = a[s++];
}
//뒤에 값 저장
else{
b[k++] = a[j++];
}
}
//나머지 부분 채워주기
while (s<=mid) b[k++] = a[s++];
while (j<=end) b[k++] = a[j++];
//원래 배열에 다시 넣어주기
for(int i=start; i<=end; i++){
a[i] = b[i-start];
}
}
Comments