(p93) k 길 병합
/*
* sort.c
*
* Created on: Feb 13, 2016
* Author: wing
*/
#include<stdio.h>
#include<stdlib.h>
struct line{
int l;
int r;
};
int exchange(struct line *x,int i,int j)
{
struct line tmp;
tmp=x[i];
x[i]=x[j];
x[j]=tmp;
return 0;
}
int sort(struct line *x,int l,int r)
{
int i=l-1,j,k=l-1;
if (r<=l) return 0;
for (j=l;j<=r-1;j++)
if (x[j].r<x[r].l)
{
exchange(x,k+1,i+1);
exchange(x,k+1,j);
i++;
k++;
}
else
if (x[j].l<=x[r].r)
{
exchange(x,i+1,j);
i++;
}
exchange(x, i + 1, r);
i++;
sort(x,l,k);
sort(x,i+1,r);
return 0;
}
int main(void)
{
int n,i;
struct line *x;
scanf("%d",&n);
x=(struct line *)malloc(sizeof(struct line)*n);
for (i=0;i<n;i++)
{
scanf("%d",&x[i].l);
scanf("%d",&x[i].r);
}
sort(x,0,n-1);
for (i=0;i<n;i++)
printf("(%d,%d) ",x[i].l,x[i].r);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Linux Shell 프로 그래 밍 - 텍스트 처리 grep, sed사용자 가 지정 한 '모드' 에 따라 대상 텍스트 를 일치 하 게 검사 하고 일치 하 는 줄 을 인쇄 합 니 다. ##포함 되 지 않 음, 역방향 일치 \ ##키워드 앞 뒤 가 맞지 않 고 키워드 만 일치 합 니 다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.