Guidelines

퀡 μ •λ ¬ 파이썬으둜 κ΅¬ν˜„ν•˜κΈ°

1. ν”Όλ²— 선택 및 λΆ„ν• 

λ°°μ—΄μ—μ„œ 피벗을 μ„ νƒν•˜κ³ , 피벗을 κΈ°μ€€μœΌλ‘œ 배열을 두 λΆ€λΆ„μœΌλ‘œ λ‚˜λˆ•λ‹ˆλ‹€.

이 κ³Όμ •μ—μ„œ λͺ¨λ“  μš”μ†ŒλŠ” 피벗보닀 μž‘μ€ 값은 ν”Όλ²—μ˜ μ™Όμͺ½μ—, 큰 값은 였λ₯Έμͺ½μ— μœ„μΉ˜ν•˜κ²Œ λ©λ‹ˆλ‹€.

ν”Όλ²— 선택 및 λΆ„ν• 
pivot = arr[len(arr) // 2] left = [x for x in arr if x < pivot] middle = [x for x in arr if x == pivot] right = [x for x in arr if x > pivot]

2. μž¬κ·€μ  μ •λ ¬

μ™Όμͺ½ 및 였λ₯Έμͺ½ μ„œλΈŒ 배열을 μž¬κ·€μ μœΌλ‘œ μ •λ ¬ν•©λ‹ˆλ‹€.

μž¬κ·€μ  μ •λ ¬ μ˜ˆμ‹œ
return quick_sort(left) + middle + quick_sort(right)

μ‹œκ°„ λ³΅μž‘λ„

  1. μ΅œμ•…μ˜ 경우 μ‹œκ°„ λ³΅μž‘λ„ (Worst-Case Time Complexity): O(n^2)

    • ν”Όλ²— 선택이 μ΅œμ•…μ˜ 경우(예: 항상 μ΅œμ†Œκ°’ λ˜λŠ” μ΅œλŒ€κ°’μ„ ν”Όλ²—μœΌλ‘œ 선택)일 λ•Œ λ°œμƒν•©λ‹ˆλ‹€. 이 경우, 배열이 ν•˜λ‚˜μ˜ μš”μ†Œλ‘œ λΆ„ν• λ˜μ§€ μ•Šκ³  κ³„μ†ν•΄μ„œ ν•œ μͺ½μœΌλ‘œ μΉ˜μš°μ³μ§€κ²Œ λ©λ‹ˆλ‹€.
  2. μ΅œμ„ μ˜ 경우 μ‹œκ°„ λ³΅μž‘λ„ (Best-Case Time Complexity): O(nlog n)

    • μ΄λŠ” 피벗이 맀번 λ°°μ—΄μ˜ 쀑간 값을 λΆ„ν• ν•˜λŠ” κ²½μš°μ— ν•΄λ‹Ήν•©λ‹ˆλ‹€. 각 뢄할은 배열을 절반으둜 쀄여, 둜그 μ‹œκ°„ λ³΅μž‘λ„λ₯Ό κ°–κ²Œ λ©λ‹ˆλ‹€.
  3. 평균 μ‹œκ°„ λ³΅μž‘λ„ (Average-Case Time Complexity): O(nlog n)

    • λŒ€λΆ€λΆ„μ˜ 경우, 퀡 정렬은 ν‰κ· μ μœΌλ‘œ nlog n의 μ‹œκ°„ λ³΅μž‘λ„λ₯Ό κ°€μ§‘λ‹ˆλ‹€. μ΄λŠ” ν”Όλ²— 선택이 κ· λ“±ν•˜κ²Œ μ΄λ£¨μ–΄μ§ˆ λ•Œμ˜ κΈ°λŒ€ μ‹œκ°„ λ³΅μž‘λ„μž…λ‹ˆλ‹€.

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result