PAT1089 [병합 정렬]

1120 단어
이 문제는 대략...징그럽다그는 합병 순서가 서로 인접하고 질서정연하게 두 개의 합병이라고 말했는데, 줄곧 귀환에 익숙해졌다???
#include 
using namespace std;
typedef long long LL;

const int N=1e2+10;
int b[N];

void Merge(int a[], int temp[], int Left, int Mid, int Right)
{
    int i,tp=Left;
    int dis=Right-Left+1;
    int Leftend=Mid-1;
    while(Left<=Leftend&&Mid<=Right)
        if(a[Left]=0;j--)
{
if(a[j]=0;j--)
{
if(a[j]=n) break;
Right=Left+2*dis-1;
if(Right>=n)
{
Right=n-1;
Merge(a,temp,Left,Mid,Right);  
break;
}
else
Merge(a,temp,Left,Mid,Right);
Left=Right+1;
if(Left>=n) break;
}
dis*=2;
if(Check(a,n))
{
Left=0;
while(1)
{
Mid=Left+dis;
if(Mid>=n) break;
Right=Left+2*dis-1;
if(Right>=n)
{
Right=n-1;
Merge(a,temp,Left,Mid,Right);  
break;
}
else
Merge(a,temp,Left,Mid,Right);
Left=Right+1;
if(Left>=n) break;
}
puts("Merge Sort");
for(int k=0;k

다음으로 전송:https://www.cnblogs.com/keyboarder-zsq/p/6777368.html

좋은 웹페이지 즐겨찾기