inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬으로 배우는 알고리즘 기초

이분 검색과 합병 정렬

이진탐색 vs 합병정렬

450

델서호린더하웃

작성한 질문수 1

1

이진탐색이 합병정렬보다 낫다는게 잘 이해가 안됩니다.

이진탐색은 sorted list 안에 요소 x 가 있는지 찾는 searching 알고리즘이고 합병정렬은 unsorted list 를 sorted list 로 만드는 sorting 알고리즘이니, 사실상 둘은 비교가 불가능한게 아닌가요 ?

algorithm

답변 2

1

델서호린더하웃

교수님

빠른 답변 감사합니다. 복잡도라는 개념을 이해하는데 이번 강의가 큰 도움이 되었습니다.

1

주니온

날카롭고 좋은 질문이네요.

이진 탐색과 합병 정렬은 목적과 대상이 다르니 비교가 불가능한 것이 맞습니다.

다만, 분할 정복의 시간 복잡도라는 측면에서 보면,

이진 탐색은 탐색 공간을 한 번에 절반으로 줄여나가는 알고리즘이고,

합병 정렬(또는 퀵 소트)은 탐색 공간을 한 번에 절반으로 나누지만, 

결국 분할된 양쪽 다 정복을 해야 하는 알고리즘입니다.

즉, Divide 자체가 Conquer가 되어 솔루션을 바로 찾는 알고리즘과,

Divide - Conquer를 한 후에 Combine을 통해서 솔루션을 찾을 수 있는 알고리즘을 비교하면,

둘 사이에는 커다란 시간 복잡도 차이가 있다는 뜻입니다.

좀 더 정확히 표현하면, 

이진 탐색 "문제"와 (합병/퀵) 정렬 "문제"의 시간 복잡도에 차이가 있다,

특히, 이런 경우에는 lower bound 시간 복잡도가 차이가 있다,

라고 해석하시면 되겠습니다. 

문제 생각 몇분정도가 좋을까요

0

256

1

self

2

640

1

Two sum

2

336

1

Test_queue 출력 오류

1

547

2

int 범위

2

323

1

시간복잡도

1

1373

1

심화 과정 커리큘럼 질문

1

526

1

Algorithm 3.5 : Print Shortest Path 관련 질문 (플로이드 알고리즘)

0

274

0

코드 중간에 오류 보고 합니다!

1

236

1

쉽지 않네요 ㅠ

0

335

1

분기 한정법과 배낭 문제

0

392

1

배낭문제와 동적계획법

0

511

1

최적 이진검색트리 관계식

0

412

1

플로이드 알고리즘

0

426

2

n-Queens

0

223

1

큰정수의 계산법 강의에서 몫과 나머지

0

228

1

퀵정렬

0

206

1

1.1알고리즘 이란 에서 교환정렬 파이썬으로 바꿀때

0

303

1

마지막 matrixmult 파라미터 값

0

258

2

내장함수에 언더스코프의 의미

0

648

2

def mergesort(S) 부분이 이해가 가지 않습니다.

0

281

3

분할정복에서 큰 정수 곱셈 다른 계산법?

1

319

1

0번째 왜 자꾸 버리시는건가요?

2

341

1

리스트의 합

0

181

1