πŸ–‹οΈ μžλ£Œκ΅¬μ‘°μ™€ μ•Œκ³ λ¦¬μ¦˜/μ•Œκ³ λ¦¬μ¦˜,자료ꡬ쑰

[μ •λ ¬] κ³ κΈ‰ μ •λ ¬ μ•Œκ³ λ¦¬μ¦˜(병합/퀡/νž™/μ…€)

OR15A 2023. 11. 21. 18:04

병합 μ •λ ¬ (Merge Sort)

  • 병합 정렬은 λΆ„ν•  정볡 방법을 μ‚¬μš©ν•˜λŠ” μ •λ ¬ 방법

μž‘λ™ 원리:

  • 배열을 반으둜 λ‚˜λˆ•λ‹ˆλ‹€.
  • 각 뢀뢄을 μž¬κ·€μ μœΌλ‘œ μ •λ ¬ν•©λ‹ˆλ‹€.
  • μ •λ ¬λœ 두 뢀뢄을 λ³‘ν•©ν•˜μ—¬ μ™„μ „ν•œ μ •λ ¬λœ 배열을 λ§Œλ“­λ‹ˆλ‹€.

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

  • μ΅œμ„ , 평균, μ΅œμ•… λͺ¨λ‘

곡간 λ³΅μž‘λ„:

  • (μΆ”κ°€ 배열을 μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έ)

약점:

  • μΆ”κ°€ λ©”λͺ¨λ¦¬κ°€ ν•„μš”ν•©λ‹ˆλ‹€.

자주 μ‚¬μš©λ˜λŠ” ν΄λž˜μŠ€λ‚˜ μ»¬λ ‰μ…˜:

  • λ°°μ—΄(int[], Integer[], String[] λ“±), ArrayList, LinkedList

 

 

 

퀡 μ •λ ¬ (Quick Sort)

  • 퀡 정렬도 λΆ„ν•  정볡 μ „λž΅μ„ μ‚¬μš©ν•˜μ§€λ§Œ, 병합 μ •λ ¬κ³ΌλŠ” λ‹€λ₯΄κ²Œ μž‘λ™

μž‘λ™ 원리:

  • ν”Όλ²—(pivot) μš”μ†Œλ₯Ό μ„ νƒν•©λ‹ˆλ‹€.
  • 피벗을 κΈ°μ€€μœΌλ‘œ 배열을 두 λΆ€λΆ„μœΌλ‘œ λ‚˜λˆ•λ‹ˆλ‹€: 피벗보닀 μž‘μ€ μš”μ†Œμ™€ 피벗보닀 큰 μš”μ†Œ.
  • 이 과정을 μž¬κ·€μ μœΌλ‘œ λ°˜λ³΅ν•©λ‹ˆλ‹€.

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

  • 평균:
  • μ΅œμ•…: (ν”Όλ²— 선택이 μ’‹μ§€ μ•Šμ„ 경우)

곡간 λ³΅μž‘λ„:

  • (μž¬κ·€ 호좜둜 μΈν•œ μŠ€νƒ 곡간)

약점:

  • μ΅œμ•…μ˜ 경우 μ‹œκ°„ λ³΅μž‘λ„κ°€ )이 될 수 μžˆμŠ΅λ‹ˆλ‹€.

자주 μ‚¬μš©λ˜λŠ” ν΄λž˜μŠ€λ‚˜ μ»¬λ ‰μ…˜:

  • λ°°μ—΄, ArrayList

 

 

 

νž™ μ •λ ¬ (Heap Sort)

  • νž™ 정렬은 이진 νž™(binary heap) 자료ꡬ쑰λ₯Ό μ‚¬μš©ν•˜μ—¬ 정렬을 μˆ˜ν–‰

μž‘λ™ 원리:

  • λ°°μ—΄ μš”μ†Œλ₯Ό μ΅œλŒ€ νž™(max heap)으둜 κ΅¬μ„±ν•©λ‹ˆλ‹€.
  • νž™μ˜ 루트(μ΅œλŒ€ κ°’)λ₯Ό λ°°μ—΄μ˜ 맨 끝과 κ΅ν™˜ν•©λ‹ˆλ‹€.
  • νž™μ˜ 크기λ₯Ό 쀄이고, νž™ 속성을 λ³΅κ΅¬ν•©λ‹ˆλ‹€.
  • μœ„ 과정을 λ°˜λ³΅ν•©λ‹ˆλ‹€.

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

  • 평균 및 μ΅œμ•…:

곡간 λ³΅μž‘λ„:

  • (제자리 μ •λ ¬)

약점:

  • μ•ˆμ •μ„±μ΄ μ—†κ³ , 퀡 μ •λ ¬μ΄λ‚˜ 병합 정렬에 λΉ„ν•΄ μƒλŒ€μ μœΌλ‘œ 느릴 수 μžˆμŠ΅λ‹ˆλ‹€.

자주 μ‚¬μš©λ˜λŠ” ν΄λž˜μŠ€λ‚˜ μ»¬λ ‰μ…˜:

  • λ°°μ—΄, PriorityQueue

 

 

 

μ…Έ μ •λ ¬ (Shell Sort)

  • μ…Έ 정렬은 μ‚½μž… μ •λ ¬μ˜ λ³€ν˜•μœΌλ‘œ, μΌμ •ν•œ κ°„κ²©μœΌλ‘œ λ–¨μ–΄μ§„ μš”μ†Œλ“€μ„ μ •λ ¬ν•˜λŠ” 방식

μž‘λ™ 원리:

  • 간격을 점점 쀄여가며, 각 간격에 μžˆλŠ” μš”μ†Œλ“€μ— λŒ€ν•΄ μ‚½μž… 정렬을 μˆ˜ν–‰ν•©λ‹ˆλ‹€.
  • λ§ˆμ§€λ§‰ λ‹¨κ³„μ—μ„œλŠ” 일반 μ‚½μž… 정렬을 μˆ˜ν–‰ν•©λ‹ˆλ‹€.

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

  • 평균: λ˜λŠ”, 간격에 따라 달라짐
  • μ΅œμ•…: 간격에 따라 닀름, 일반적으둜

곡간 λ³΅μž‘λ„:

  • (제자리 μ •λ ¬)

약점:

  • μ΅œμ•…μ˜ 경우 μ„±λŠ₯이 맀우 λ–¨μ–΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

자주 μ‚¬μš©λ˜λŠ” ν΄λž˜μŠ€λ‚˜ μ»¬λ ‰μ…˜:

  • λ°°μ—΄, ArrayList

.

 

 

참고자료 : γ€Œμ‰½κ²Œ λ°°μš°λŠ” μžλ£Œκ΅¬μ‘° with μžλ°”」