C# 기초 강의실

시삽: 레드플러스 님 
게시판 이동:
 제목 : 병합(MERGE) 알고리즘
글번호: 306
작성자: 레드플러스
작성일: 2006/04/18 오후 12:01:00
조회수: 6863
/*
    병합(MEARGE) 알고리즘 : 오름차순으로 나열된 두 그룹의 데이터를 한 그룹의 데이터로 병합한다.
    (1) 데이터 a, b 중에 어느 한 쪽이 끝에 도달할 때까지 다음을 반복
    (2) a(i)와 b(j)를 비교해서 작은쪽을 c(k)에 복사하고 작은 쪽의 데이터 번호를 +1한다.
    (3) 둘 중에 아직 끝까지 도달하지 않은 데이터를 끝까지 복사한다.
*/s
using System;

namespace 알고리즘
{
    public class 병합알고리즘
    {
        private static int M = 10;
        private static int N = 5;
        private static void Main(string[] args)
        {
            //[1] Init/Input
            int [] a = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
            int [] b = {1, 3, 5, 7, 9};
            int [] c = new int[M + N];    //병합된 데이터 저장

            //[2] Process
            int i, j, k;

            i = j = k = 0;

            while(i < M && j < N)    //a[], b[] 모두 끝에 도달하지 않은 동안
            {
                if(a[i] <= b[j])
                {
                    c[k++] = a[i++];
                }
                else
                {
                    c[k++] = b[j++];
                }
            }

            while(i < M)        //a[]가 끝에 도달할 때까지
            {
                c[k++] = a[i++];
            }

            while(j < N)        //b[]가 끝에 도달할 때까지
            {
                c[k++] = b[j++];
            }

            //[3] Output
            for(i = 0;i < M + N;i++)
            {
                Console.Write("{0} ", c[i]);
            }
            Console.Write("\n");
        }
    }
}
 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트

(댓글을 남기려면 로그인이 필요합니다.)

관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 16. 파일 처리(파일 및 디렉터리 입출력) - 레드플러스 2003-03-31 7289
  15. 알고리즘(Algorithm) - 레드플러스 2003-03-31 7016
  15.1. 합계(SUM) 알고리즘 - 레드플러스 2004-03-13 5772
  예제. 합계(SUM) 알고리즘 SUM.gif(12 KB) 레드플러스 2004-03-18 6891
  15.2. 횟수(COUNT) 알고리즘 - 레드플러스 2004-03-13 5086
  예제. 횟수(COUNT) 알고리즘 COUNT.gif(11 KB) 레드플러스 2004-03-18 5379
  15.3. 평균(AVERAGE) 알고리즘 - 레드플러스 2004-03-13 4824
  예제. 평균(AVERAGE) 알고리즘 AVG.gif(11 KB) 레드플러스 2004-03-18 5900
  15.4. 최대값(MAX) 알고리즘 - 레드플러스 2004-03-13 5041
  예제. 최대값(MAX) 알고리즘 MAX.gif(11 KB) 레드플러스 2004-03-18 7203
  15.5. 최소값(MIN) 알고리즘 - 레드플러스 2004-03-13 4874
  예제. 최소값(MIN) 알고리즘 MIN.gif(11 KB) 레드플러스 2004-03-18 6579
  15.6. 오름차순 정렬(ASCENDING SORT) 알고리즘 - 레드플러스 2004-03-13 6119
  예제. 오름차순 정렬(ASCENDING SORT) 알고리즘 SelectionSort.gif(16 KB) 레드플러스 2004-03-19 7101
  15.7. 내림차순 정렬(DESCENDING SORT) 알고리즘 - 레드플러스 2004-03-13 6221
  예제. 내림차순 정렬(DESCENDING SORT) 알고리즘 SelectionSortDesc.gif(16 KB) 레드플러스 2004-03-19 8045
  15.8. 순위(RANK) 알고리즘 - 레드플러스 2004-03-13 5726
  15.9. 가까운값(NEAR) 알고리즘 가까운값_알고리즘_800X600.png(118 KB) 레드플러스 2004-03-13 5215
  가까운값알고리즘.cs 가까운값알고리즘CS.png(65 KB) 레드플러스 2014-05-21 4843
  가까운값 모두 구하기 CS_알고리즘_가까운값 모두 구하기.png(60 KB) 레드플러스 2018-02-13 2037
  연습문제. 알고리즘(Algorithm) - 레드플러스 2004-03-23 5364
현재글 병합(MERGE) 알고리즘 - 레드플러스 2006-04-18 6863
  15.10. 선택정렬 알고리즘 - 레드플러스 2007-02-15 4906
  알고리즘_배열채우기_열우선.cs 알고리즘_배열채우기_열우선.png(61 KB) 레드플러스 2014-05-22 2828
  알고리즘_배열채우기_열감소.cs 알고리즘_배열채우기_열감소.png(48 KB) 레드플러스 2014-05-22 3127
  C# 알고리즘_배열채우기_달팽이.cs 알고리즘_배열채우기_달팽이.png(86 KB) 레드플러스 2014-05-31 6919
  C#을 사용한 초간단 가위 바위 보 게임 가위바위보_CS.png(102 KB) 레드플러스 2014-06-03 6193
  배열 패턴 찾기 배열 패턴 찾기.png(120 KB) 레드플러스 2014-06-16 3034
다음글 14. 구조체, 열거형, 네임스페이스 GuidDemo.png(34 KB) 레드플러스 2003-03-31 7430
 
손님 사용자 Anonymous (손님)
로그인 Home