Skip to Content
알고리즘 학습
book

알고리즘 학습

by George Heineman
May 2025
Beginner to intermediate
280 pages
4h 33m
Korean
O'Reilly Media, Inc.
Book available
Content preview from 알고리즘 학습

5장. 모자 없이 분류하기

이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com

이 장에서는 배열의 N 값을 오름차순이 되도록 재배열하는 알고리즘을 소개합니다. 값 모음을 정렬된 순서로 구성하는 것은 많은 프로그램의 효율성을 향상시키기 위한 필수적인 첫 단계입니다. 정렬은 직원의 이름과 전화번호가 포함된 회사의 직원 명부를 인쇄하거나 공항 전광판에 항공편 출발 시간을 표시하는 등 많은 실제 애플리케이션에도 필요합니다.

정렬되지 않은 배열을 사용하면 최악의 경우 값을 검색하는 데 O(N)이 걸립니다. 배열이 정렬된 경우 이진 배열 검색은 최악의 경우 O(log N) 성능으로 대상 값을 찾을 수 있습니다.

스와핑을 통한 정렬

그림 5-1의 상단에 있는 배열( A)의 값을 정렬해 보세요. 연필을 사용하여 그림 5-1의 값을 종이에 복사해 보세요(또는 펜을 꺼내서 이 페이지에 그냥 써 보세요!). 배열에서 두 값의 위치를 반복적으로 바꾸어 오름차순으로 정렬해 보세요. 가장 적은 수의 스왑이 필요한 것은 무엇일까요? 또한 두 값을 서로 비교하는 횟수를 세어보세요. 저는 5번의 스왑으로 이 값들을 정렬했습니다. 더 적은 수를 사용할 수 있나요?1

Sort these values
그림 5-1. 샘플 배열, A, 정렬

스왑 횟수를 세는 것도 중요하지만, 두 값 사이의 비교 횟수도 세어야 합니다. 먼저 1장에서 설명한 것처럼 7번만 비교하면 A 에서 2가 가장 작은 값이라는 것을 알 수 있습니다. 가장 작은 값은 A[3] 에서 발견되므로 A[0] 으로 바꿉니다. 이렇게 하면 가장 작은 값이 배열의 앞쪽으로 이동합니다.

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

자바에서 코틀린으로

자바에서 코틀린으로

덩컨 맥그레거, 냇 프라이스
진화적 아키텍처

진화적 아키텍처

닐 포드, 레베카 파슨스, 패트릭 쿠아
고성능 파이썬(2판)

고성능 파이썬(2판)

오현석, 미샤 고렐릭, 이안 오스발트

Publisher Resources

ISBN: 9798341654648Supplemental Content