#include<cs50.h>
#include<stdio.h>

void merge(int ar[], int num);

int number=0;


int main(void)
{
    int array[7]={ 3, 5, 1, 6, 9, 2, 4};
    merge(array,7);
}

void merge(int ar[], int num)
{
    int end=0,intersection=0,left_num=0,right_num=0;
    if(number==2)
    {
        return;
    }
    for(int i=0;i<num;i++)
    {
        printf("ar[%d] is %d\n",i,ar[i]);
    }
    printf("num is %d\n",num);
    if(num==1)
    {
        return;
    }
    intersection=(num)/2;
    printf("intersection is %d\n",intersection);
    int left[intersection], right[num-intersection];
    for(int i=0;i<num;i++)
    {
        if(i<intersection)
        {
            left[left_num]=ar[i];
            printf("left[%d] is %d\n",left_num,left[left_num]);
            left_num++;
        }
        else
        {
            right[right_num]=ar[i];
            printf("right[%d] is %d\n",right_num,right[right_num]);
            right_num++;
        }
    }
    number++;
    merge(left,left_num);
    merge(right,right_num);
}



일단 배열 쪼개는거까지 시행착오를 겪으면서 어케어케 하긴했는데...

이렇게 다 쪼갠다음 배열 구성요소 비교를 해서 새로운 배열에 넣는다고치면

이 부분을 재귀 뒷부분에다 넣어야 할텐데 그럼 뭐라해야되지 재귀를 전부다 빠져나올때 영향을 미칠수가있어?

left배열과 right배열 비교하면서 새로운 merged 배열에다가 차곡차곡 넣는걸 뒷부분에다 넣으려고 하는데

미쳐버리겠네..


구현코드 찾아보면 나올텐데 그거보다 직접 만들어보고싶어서 해보는중임ㅠㅠ