블로그 이미지
Magic_kit
study 관련자료를 한곳으로 자기 개발 목적으로 재태크 재무 관리 목적으로 일상생활의 팁을 공유 하기 위하여 블로그를 개설 하였습니다.

calendar

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

Category

Recent Post

Recent Comment

Archive

2009. 8. 12. 17:06 .Net Project/.Net 3.5 Sp1
반응형






//병합(MEARGE) : 두개의 배열을 합치기(정렬하면서 합치기??)
//오름차순으로 나열된 두 그룹의 데이터를 한 그룹의 데이터로 병합한다.
//1. 데이터 a,b 중에 어느 한쪽이 끝에 도달할 때까지 다음을 반복
//2. a(i)와 b(j)를 비교해서 작은 쪽은 c(k)에 복사하고 작은 쪽 번호를 +1한다.
//3. 둘 중에 아직 끝까지 도달하지 않은 데이터를 끝까지 복사한다.

using System;

public class 병합
{
    public static void Main()
    {
        //1.input
        int[] first = { 1, 3, 5 };
        int[] second = { 2, 4 };
        int[] mearge = new int[first.Length + second.Length];
        int i = 0; int j = 0; int k = 0;
        int M = first.Length;
        int N = second.Length;

        //2.process
        while (i < M && j < N) //모두 끝에 도달 할때까지
        {
            if (first[i] <= second[j])
            {
                mearge[k++] = first[i++];
            }
            else
            {
                mearge[k++] = second[j++];
            }


        }

        while (i < M) //첫번째 배열이 끝까지 도달할 때까지
        {

            mearge[k++] = first[i++];

        }

        while (j < N) //두번째 배열이 끝까지 도달할때까지
        {
            mearge[k++] = second[j++];
        }  

        //3.output
        for (int a=0 ; a < M+N; a++)
        {
            Console.WriteLine(mearge[a]);
        }
      

    }

}

반응형

'.Net Project > .Net 3.5 Sp1' 카테고리의 다른 글

66장 이벤트(Event)  (0) 2009.08.13
65장 델리게이트(delegate)  (0) 2009.08.13
63장 알고리즘(이진검색)  (0) 2009.08.12
62장 알고리즘(순차검색)  (0) 2009.08.12
61장 정수형인덱스와문자열인덱스비교  (0) 2009.08.12
posted by Magic_kit