아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

세계에서 가장 빠른 정렬 알고리즘

시간 제한1초메모리 제한1024 MB

요약
각 테스트 케이스에서 개수 N과 이미 정렬된 정수 N개를 읽고, 케이스 번호와 고정된 문구 'Sorting... done!'을 출력합니다.
난이도

쉬움10점 중 1점

유형
구현
정답자
아직 제출이 없습니다

문제

정렬 알고리즘은 흔히 점근적 속도로 비교한다. 선택 정렬처럼 느린 알고리즘은 N개의 원소를 정렬하는 데 O(N2) 시간이 걸리고, 병합 정렬처럼 비교 기반인 정렬은 합리적인 가정 아래에서 O(N log(N)) 시간보다 빠를 수 없다. 비교 기반이 아닌 버킷 정렬은 O(N) 시간에 정렬할 수 있다. 버킷 정렬은 가능한 값의 범위가 N에 비해 작다고 가정하기 때문이다. 일반적으로 정렬 알고리즘의 속도는 정렬할 데이터에 대해 어떤 가정을 할 수 있는지에 달려 있다.

속도에도 불구하고 자주 간과되는 정렬 알고리즘이 하나 있는데, 바로 세계에서 가장 빠른 정렬 알고리즘이다. 이 알고리즘은 O(1), 즉 상수 시간에 정렬한다. 물론 입력이 이미 빠른 접근이 가능한 메모리에 있는 배열이고, 이미 정렬되어 있다고 가정한다. 이 문제에서는 세계에서 가장 빠른 정렬 알고리즘을 구현한다.

입력

입력 파일에는 여러 테스트 케이스가 들어 있으며, 각 테스트 케이스는 정렬할 배열 하나를 나타낸다. 각 배열 설명은 정수 0 < N ≤ 100으로 시작한다. N 다음에는 정렬할 N개의 정수가 오며, 이들은 감소하지 않는 순서로 주어진다. 정렬할 모든 정수는 0 이상 100000 이하이다. 마지막 테스트 케이스 다음에는 0 하나만 있는 줄이 온다.

출력

각 테스트 케이스마다 케이스 번호(1부터 시작)를 출력하고, 그 뒤에 Sorting... done!이라는 문자열을 출력한다.

예제1

  1. 예제 1

    입력
    5 21 44 48 48 64
    6 8 19 22 49 53 62
    8 5 9 14 17 24 25 27 61
    4 13 21 28 35
    5 31 38 44 49 60
    0
    
    예상 출력
    Case 1: Sorting... done!
    Case 2: Sorting... done!
    Case 3: Sorting... done!
    Case 4: Sorting... done!
    Case 5: Sorting... done!