Search

ํ€ต์ •๋ ฌ

public class QuickSort { public static void quickSort(int[] arr, int low, int high) { if (low < high) { int pi = partition(arr, low, high); quickSort(arr, low, pi - 1); quickSort(arr, pi + 1, high); } } private static int partition(int[] arr, int low, int high) { int pivot = arr[high]; int i = (low - 1); for (int j = low; j < high; j++) { if (arr[j] <= pivot) { i++; int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } int temp = arr[i + 1]; arr[i + 1] = arr[high]; arr[high] = temp; return i + 1; } public static void main(String[] args) { int[] arr = {64, 34, 25, 12, 22, 11, 90}; System.out.println("์ •๋ ฌ ์ „ ๋ฐฐ์—ด:"); for (int num : arr) System.out.print(num + " "); System.out.println(); quickSort(arr, 0, arr.length - 1); System.out.println("์ •๋ ฌ ํ›„ ๋ฐฐ์—ด:"); for (int num : arr) System.out.print(num + " "); System.out.println(); } }
Java
๋ณต์‚ฌ

์‹œ๊ฐ„๋ณต์žก๋„ ๋ถ„์„

ํ€ต์ •๋ ฌ์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:
โ€ข
์ตœ์„ ์˜ ๊ฒฝ์šฐ: O(n log n) - ํ”ผ๋ฒ—์ด ํ•ญ์ƒ ์ค‘๊ฐ„ ๊ฐ’์œผ๋กœ ์„ ํƒ๋˜๋Š” ๊ฒฝ์šฐ
โ€ข
ํ‰๊ท ์˜ ๊ฒฝ์šฐ: O(n log n) - ์ผ๋ฐ˜์ ์ธ ์ƒํ™ฉ์—์„œ์˜ ์„ฑ๋Šฅ
โ€ข
์ตœ์•…์˜ ๊ฒฝ์šฐ: O(nยฒ) - ์ด๋ฏธ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์ด๋‚˜ ํ”ผ๋ฒ—์ด ํ•ญ์ƒ ์ตœ์†Œ/์ตœ๋Œ€๊ฐ’์ธ ๊ฒฝ์šฐ

O(nยฒ) ์‹œ๊ฐ„๋ณต์žก๋„ ๋ถ„์„

์ตœ์•…์˜ ๊ฒฝ์šฐ O(nยฒ)๊ฐ€ ๋˜๋Š” ๊ณผ์ •์„ ๋ถ„์„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค:

1. ๋ถ„ํ• (Partition) ๊ณผ์ •

โ€ข
๋งค ๋ถ„ํ• ๋งˆ๋‹ค ์ „์ฒด ๋ฐฐ์—ด์„ ์ˆœํšŒ: O(n)
โ€ข
์ด๋ฏธ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์—์„œ ์ตœ์†Œ/์ตœ๋Œ€๊ฐ’์ด ํ”ผ๋ฒ—์œผ๋กœ ์„ ํƒ๋  ๊ฒฝ์šฐ:
โ—ฆ
ํ•œ์ชฝ ํŒŒํ‹ฐ์…˜์€ 0๊ฐœ์˜ ์›์†Œ
โ—ฆ
๋‹ค๋ฅธ ์ชฝ ํŒŒํ‹ฐ์…˜์€ n-1๊ฐœ์˜ ์›์†Œ๋ฅผ ๊ฐ€์ง

2. ์žฌ๊ท€ ํ˜ธ์ถœ ๊ณผ์ •

โ€ข
๋ถˆ๊ท ํ˜• ๋ถ„ํ• ๋กœ ์ธํ•ด n๋ฒˆ์˜ ์žฌ๊ท€ ํ˜ธ์ถœ ๋ฐœ์ƒ
โ€ข
๊ฐ ๋ ˆ๋ฒจ์—์„œ n๊ฐœ์˜ ์›์†Œ๋ฅผ ์ฒ˜๋ฆฌ

์ตœ์ข… ๊ฒฐ๋ก 

๋ถ„ํ•  ๊ณผ์ • O(n) ร— ์žฌ๊ท€ ํ˜ธ์ถœ ํšŸ์ˆ˜ O(n) = O(nยฒ)
์ด๋Š” ํ”ผ๋ฒ— ์„ ํƒ์ด ์ตœ์•…์˜ ๊ฒฝ์šฐ์ผ ๋•Œ(ํ•ญ์ƒ ์ตœ์†Œ๊ฐ’์ด๋‚˜ ์ตœ๋Œ€๊ฐ’์ด ์„ ํƒ๋  ๋•Œ) ๋ฐœ์ƒํ•˜๋ฉฐ, ๋ถ„ํ• ์ด ๊ฐ€์žฅ ๋ถˆ๊ท ํ˜•ํ•˜๊ฒŒ ์ด๋ฃจ์–ด์ ธ ์ „์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ์ด ์ €ํ•˜๋ฉ๋‹ˆ๋‹ค.

๊ณต๊ฐ„๋ณต์žก๋„

ํ€ต์ •๋ ฌ์˜ ๊ณต๊ฐ„๋ณต์žก๋„๋Š” O(log n)์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์žฌ๊ท€ ํ˜ธ์ถœ ์Šคํƒ์— ํ•„์š”ํ•œ ๊ณต๊ฐ„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

ํŠน์ง•

โ€ข
๋ถˆ์•ˆ์ • ์ •๋ ฌ: ๋™์ผํ•œ ๊ฐ’์„ ๊ฐ€์ง„ ์›์†Œ๋“ค์˜ ์ƒ๋Œ€์  ์œ„์น˜๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š์Œ
โ€ข
์ œ์ž๋ฆฌ ์ •๋ ฌ: ์ถ”๊ฐ€์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๊ฑฐ์˜ ํ•„์š”ํ•˜์ง€ ์•Š์Œ
โ€ข
๋ถ„ํ•  ์ •๋ณต: ๋ฌธ์ œ๋ฅผ ๋” ์ž‘์€ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆ„์–ด ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ์‹
โ€ข
์‹ค์ œ ์„ฑ๋Šฅ: ํ‰๊ท ์ ์œผ๋กœ ๋‹ค๋ฅธ O(n log n) ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋ณด๋‹ค ๋น ๋ฅธ ์„ฑ๋Šฅ์„ ๋ณด์ž„

์ตœ์ ํ™” ๋ฐฉ๋ฒ•

ํ€ต์ •๋ ฌ์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค:
โ€ข
๋ฌด์ž‘์œ„ ํ”ผ๋ฒ— ์„ ํƒ: ์ตœ์•…์˜ ๊ฒฝ์šฐ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ํ”ผ๋ฒ—์„ ๋žœ๋คํ•˜๊ฒŒ ์„ ํƒ
โ€ข
์‚ฝ์ž… ์ •๋ ฌ ํ˜ผ์šฉ: ์ž‘์€ ๋ถ€๋ถ„ ๋ฐฐ์—ด(๋ณดํ†ต 10๊ฐœ ์ดํ•˜)์— ๋Œ€ํ•ด์„œ๋Š” ์‚ฝ์ž… ์ •๋ ฌ ์‚ฌ์šฉ
โ€ข
3-๋ฐฉํ–ฅ ํ€ต์ •๋ ฌ: ์ค‘๋ณต๋œ ์›์†Œ๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ์— ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•
โ€ข
์ค‘๊ฐ„๊ฐ’ ํ”ผ๋ฒ—: ์ฒซ ๋ฒˆ์งธ, ์ค‘๊ฐ„, ๋งˆ์ง€๋ง‰ ์›์†Œ ์ค‘ ์ค‘๊ฐ„๊ฐ’์„ ํ”ผ๋ฒ—์œผ๋กœ ์„ ํƒ

๋ณ‘ํ•ฉ์ •๋ ฌ๊ณผ์˜ ๋น„๊ต

ํŠน์„ฑ
ํ€ต์ •๋ ฌ
๋ณ‘ํ•ฉ์ •๋ ฌ
์ตœ์•… ์‹œ๊ฐ„๋ณต์žก๋„
O(nยฒ)
O(n log n)
ํ‰๊ท  ์‹œ๊ฐ„๋ณต์žก๋„
O(n log n)
O(n log n)
๊ณต๊ฐ„๋ณต์žก๋„
O(log n)
O(n)
์•ˆ์ •์„ฑ
๋ถˆ์•ˆ์ •
์•ˆ์ •
์ œ์ž๋ฆฌ ์ •๋ ฌ
์˜ˆ
์•„๋‹ˆ์˜ค