반응형
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
32
33
34
35
36
37
38
39
40
|
#include <stdio.h>
#include <string.h>
// 정렬에 사용 할 자료
typedef struct _score
{
int id;
int jumsu;
char name[10];
}SCORE;
int main(void)
{
return 0;
}
int Sort_Merge(SCORE *d, SCORE *tmp, int order, int s, int e, int (*comp)(SCORE * x, SCORE * y))
{
int m,idx1,idx2,idxtmp;
if(s>=e) return -1;
m = (s+e)/2;
Sort_Merge(d, tmp, order, s, m, comp);
Sort_Merge(d, tmp, order, m+1, e, comp);
idx1 = s; idx2 = m+1; idxtmp = s;
while(idx1<=m && idx2<=e)
{
if((order * comp(&d[idx1],&d[idx2]))<0) tmp[idxtmp++] = d[idx1++];
else tmp[idxtmp++] = d[idx2++];
}
if(idx1<=m) while(idx1<=m) tmp[idxtmp++] = d[idx1++];
else while(idx2<=e) tmp[idxtmp++] = d[idx2++];
for(idxtmp = s;idxtmp<=e;idxtmp++) d[idxtmp] = tmp[idxtmp];
return e-s+1;
}
|
cs |
반응형
'알고리즘 문제풀이' 카테고리의 다른 글
SSD에 파일을 쓰기, 삭제, 읽기, 수정하는 프로그램 구현 (0) | 2020.10.31 |
---|---|
[Heap]중앙값관련 Problem Solving (0) | 2020.10.08 |
[CS] Quick Sort (0) | 2020.10.07 |
[CS] Stack, Queue (Heap기반) (0) | 2020.10.07 |
[CS] Stack, Queue(Linear, Circular) (0) | 2020.10.07 |