정답이 있는 알고리즘과 복잡도 학습지
무료 인쇄용 알고리즘과 복잡도 학습지: 쉬운 문제부터 시험 수준까지 8문제, 정답표 포함. 인쇄하거나 PDF로 저장하세요.
교수자 안내: 수업에서 무료로 인쇄, 복사, 사용할 수 있습니다. 새 워크시트마다 값이 새로 바뀌고 별도의 정답이 함께 제공됩니다. 강의 페이지에 ExamProblems 링크를 걸어 주시면 감사하겠습니다.
이름: ____________________ 날짜: ____________
1.쉬움
n개의 수로 된 정렬되지 않은 배열에서 가장 큰 값을 찾는 시간 복잡도는 무엇입니까?
- AO(log n)
- BO(n log n)
- CO(1)
- DO(n)
2.쉬움
정렬된 배열에서 이진 탐색(binary search)의 시간 복잡도는 무엇입니까?
- AO(log n)
- BO(1)
- CO(n)
- DO(n log n)
3.쉬움
재귀 함수의 기저 사례(base case)란 무엇입니까?
- A또 다른 재귀 호출 없이 직접 답을 내는 경우
- B메모리를 가장 많이 쓰는 호출
- C함수의 첫 줄
- D입력이 가장 큰 경우로, 재귀 호출보다 먼저 처리된다
4.보통
많은 라이브러리 정렬 루틴이 아주 작은 부분 배열에서 삽입 정렬로 전환하는 이유는 무엇입니까?
- A삽입 정렬은 오버헤드가 적고 작거나 거의 정렬된 입력에서 빠르기 때문에
- B재귀 알고리즘은 원소가 10개 미만인 배열을 처리하지 못하기 때문에
- C큰 입력에서 삽입 정렬이 다른 어떤 정렬 알고리즘보다 메모리를 적게 쓰기 때문에
- D삽입 정렬은 최악의 경우 O(n log n)이기 때문에
5.보통
최악의 경우 비교 기반 정렬의 하한은 무엇입니까?
- AΩ(n²)
- BΩ(n log n)
- CΩ(n)
- DΩ(log n)
6.보통
점화식 T(n) = T(n − 1) + O(n)의 해는 무엇입니까?
- AO(n)
- BO(2ⁿ)
- CO(n²)
- DO(n log n)
7.어려움
큰 n에서 n!과 2ⁿ은 어떻게 비교됩니까?
- A2ⁿ이 n!보다 빠르게 증가한다
- Bn!은 O(n²)이다
- Cn!이 2ⁿ보다 빠르게 증가한다
- D같은 비율로 증가한다
8.어려움
어떤 입력에 대해서도 퀵 정렬의 기대(expected) 실행 시간을 O(n log n)으로 만드는 기법은 무엇입니까?
- A항상 첫 번째 원소를 선택하기
- B피벗을 균등하게 무작위로 선택하기
- C퀵 정렬을 실행하기 전에 입력을 정렬하기
- D왼쪽에만 재귀를 사용하기
정답표
- 1. D · O(n)
- 2. A · O(log n)
- 3. A · 또 다른 재귀 호출 없이 직접 답을 내는 경우
- 4. A · 삽입 정렬은 오버헤드가 적고 작거나 거의 정렬된 입력에서 빠르기 때문에
- 5. B · Ω(n log n)
- 6. C · O(n²)
- 7. C · n!이 2ⁿ보다 빠르게 증가한다
- 8. B · 피벗을 균등하게 무작위로 선택하기
자세한 단계별 풀이: examproblems.com에서 이 주제를 연습하세요.