Skip to content

sp3arm4n/Algorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Algorithm

2019년 3학년 1학기

2021년 9학기 (재수강)


1. Select_Sort

  • n개의 정수를 입력 받아 오름차순으로 정렬하여 출력하는 자바프로그램을 작성하시오.

    n값 입력: 5
    5개의 정수 입력: 30 50 40 10 20
    정렬결과: 10 20 30 40 50

2. Recursion (MergeSort & QuickSort Performance Test)

  • n개의 random number들에 대해 합병정렬과 퀵 정렬의 성능을 측정하여 표로 만들고, 그래프로 그려라.
  • n = 1000, 5000, 10000, 20000, 50000, 100000에 테스트하라.
  • 각각의 n에 대해 적어도 10개의 테스트 데이터에 적용하고 그 평균을 산출하여 표와 그래프를 만들어라.
  • 합병정렬과 퀵정렬은 순환호출 함수를 사용하라.

3. Huffman

  • 하나의 영문 파일을 입력받아 각 영문자마다 (space 문자포함) 빈도수를 조사한 수, Huffman 트리(decode 트리)를 생성하라.

  • Huffman 트리를 이용하여 각 문자의 코드를 결정하라.

    <제출물> 프로그램 소스
    입력 파일 (위 단계 1에서 사용됨)
    각 문자의 빈도수와 할당된 코드 (단계 1과 2의 결과)

  • 3개의 파일에 대해 테스트하라.

  • 단순화를 위해 영문 파일은 영어 알파벳의 소문자와 space 문자로만 되어 있다고 가정한다.

4. Multistage_Graph

  • 다단계 그래프에서 최소비용 경로를 구하는 프로그램을 작성하라. 방향 그래프를 인접행렬에 저장하고, n개의 정점들이 있을 때, 정점의 번호는 1부터 n까지 부여한다. 시작 정점은 1, 끝 정점은 n으로 한다.

  • 입력의 예
    image

    정점의 수와 간선의 수를 입력: 12 21
    0번째 간선: 1 2 9
    1번째 간선: 1 3 7
    ...

  • 출력: 인접행렬, 각 정점의 cost, d값, 그리고 최소-비용 경로

  • backward 방법을 사용하여 프로그램을 작성할 것

  • 3개 이상의 다단계 그래프에 적용하라.

5. Edit_Distance

  • 두 개의 문자열을 입력받아 최적의 문자열 편집 순서를 결정하는 프로그램을 작성하라. 편집 순서가 올바른가를 테스트하기 위해 문자열 X에 적용하여 최종 결과가 문자열 Y가 되는지 확인하는 함수도 포함하라.

    [입력]

    두 문자열의 길이를 입력: n m
    두 문자열을 입력:
    x1 x2 ... xn
    y1 y2 ... yn

    [출력]

    c(i,j) 표

    최적의 편집 순서열: 맨 앞 연산부터 차례로
    입력문자열에 차례로 적용하기:

  • 5개 이상의 문자열에 대해 적용하라.