[μ•Œκ³ λ¦¬μ¦˜] 버블정렬(Bubble Sort)μ΄λž€?

2022. 12. 18. 02:14Β·πŸ“š 자료ꡬ쑰 및 μ•Œκ³ λ¦¬μ¦˜/μ •λ ¬ 및 탐색
728x90

λ²„λΈ”μ •λ ¬μ΄λž€

  • μΈμ ‘ν•œ 2개의 λ ˆμ½”λ“œλ₯Ό λΉ„κ΅ν•˜μ—¬ μˆœμ„œλŒ€λ‘œ λ˜μ–΄ μžˆμ§€ μ•ŠμœΌλ©΄ μ„œλ‘œ κ΅ν™˜ν•˜λŠ” λ°©μ‹μ˜ μ •λ ¬ μ•Œκ³ λ¦¬μ¦˜
  • 선택정렬과 κΈ°λ³Έκ°œλ…μ΄ μœ μ‚¬ν•˜λ‹€

버블정렬 κΈ°λ³Έ κ°œλ…

  • 버블 μ •렬은 μ²« λ²ˆμ§Έ μžλ£Œμ™€ λ‘ λ²ˆμ§Έ μžλ£Œλ₯Ό, λ‘ λ²ˆμ§Έ μžλ£Œμ™€ μ„Έ λ²ˆμ§Έ μžλ£Œλ₯Ό, μ„Έ λ²ˆμ§Έμ™€ λ„€ λ²ˆμ§Έλ₯Ό, … μ΄λŸ° μ‹μœΌλ‘œ (λ§ˆμ§€λ§‰-1)번째 μžλ£Œμ™€ λ§ˆμ§€λ§‰ μžλ£Œλ₯Ό λΉ„κ΅ν•˜μ—¬ κ΅ν™˜ν•˜λ©΄μ„œ μžλ£Œλ₯Ό μ •λ ¬ν•œλ‹€.
  • 1νšŒμ „μ„ μˆ˜ν–‰ν•˜κ³  λ‚˜λ©΄ κ°€μž₯ 큰 μžλ£Œκ°€ 맨 λ’€λ‘œ μ΄λ™ν•˜λ―€λ‘œ 2νšŒμ „μ—μ„œλŠ” 맨 끝에 μžˆλŠ” μžλ£ŒλŠ” μ •λ ¬μ—μ„œ μ œμ™Έλ˜κ³ , 2νšŒμ „μ„ μˆ˜ν–‰ν•˜κ³  λ‚˜λ©΄ λμ—μ„œ 두 번째 μžλ£ŒκΉŒμ§€λŠ” μ •λ ¬μ—μ„œ μ œμ™Έλœλ‹€. μ΄λ ‡κ²Œ 정렬을 1νšŒμ „ μˆ˜ν–‰ν•  λ•Œλ§ˆλ‹€ μ •λ ¬μ—μ„œ μ œμ™Έλ˜λŠ” 데이터가 ν•˜λ‚˜μ”© λŠ˜μ–΄λ‚œλ‹€.

 

버블정렬 κ³Όμ •

  1. 첫번째 자료 7을 4와 λΉ„κ΅ν•˜μ—¬ κ΅ν™˜ν•˜κ³ , [κ΅ν™˜]칸이 ν•œ μΉΈ μ΄λ™λ˜μ–΄ 7κ³Ό 5λ₯Ό κ΅ν™˜, 7κ³Ό 1을 κ΅ν™˜ μ΄λŸ°μ‹μœΌλ‘œ κ΅ν™˜ν•΄λ‚˜κ°€λ©΄ 맨 λ§ˆμ§€λ§‰ μžλ£Œμ—λŠ” 7이 μ‚½μž…λ˜κ³  7은 μ •λ ¬μ™„λ£Œ μƒνƒœ
  2. λ§ˆμ°¬κ°€μ§€λ‘œ 5κ°€ 1번처럼 7 ν•œ μΉΈ μ•žμ— μ‚½μž…λ˜μ–΄ 5 7 은 μ •λ ¬μ™„λ£Œ μƒνƒœ
  3. 4κ°€ 5 7 μ•žμ— μ‚½μž…λ˜μ–΄ 4 5 7 은 μ •λ ¬ μ™„λ£Œ μƒνƒœ
  4. 1κ³Ό 3은 κ·ΈλŒ€λ‘œ μœ μ§€λ˜κ³  3 4 5 7은 μ •λ ¬ μ™„λ£Œ μƒνƒœ
#include <stdio.h>
#include <stdlib.h>
#pragma warning(disable:4996)

int main() {
    int arr[5] = {9,6,7,3,5};
    int i,j;
    for(i=4; i>0; i--){
        for(j=0; j<i; j++){
            if(arr[j] > arr[j+1]){
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }

    for(int i=0; i< 5;i++){
        printf("%d ", arr[i]);
    }

}

 

버블정렬 νŠΉμ§• 및 μ‹œκ°„λ³΅μž‘λ„

μž₯점

  • κ΅¬ν˜„μ΄ 맀우 κ°„λ‹¨ν•˜λ‹€

단점

  • μˆœμ„œμ— λ§žμ§€ μ•Šμ€ μš”μ†Œλ₯Ό μΈμ ‘ν•œ μš”μ†Œμ™€ κ΅ν™˜ν•œλ‹€.
  • ν•˜λ‚˜μ˜ μš”μ†Œκ°€ κ°€μž₯ μ™Όμͺ½μ—μ„œ κ°€μž₯ 였λ₯Έμͺ½μœΌλ‘œ μ΄λ™ν•˜κΈ° μœ„ν•΄μ„œλŠ” λ°°μ—΄μ—μ„œ λͺ¨λ“  λ‹€λ₯Έ μš”μ†Œλ“€κ³Ό κ΅ν™˜λ˜μ–΄μ•Ό ν•œλ‹€.
  • νŠΉμ • μš”μ†Œκ°€ μ΅œμ’… μ •λ ¬μœ„μΉ˜μ— 이미 μžˆλŠ” κ²½μš°λΌλ„ κ΅ν™˜λ˜λŠ” 일이 λ°œμƒν•  수 μžˆλ‹€.
  • 일반적으둜 자료의 κ΅ν™˜ μž‘μ—…(SWAP)이 자료의 이동 μž‘μ—…(MOVE)보닀 더 λ³΅μž‘ν•˜κΈ° λ•Œλ¬Έμ— 버블 정렬은 λ‹¨μˆœμ„±μ— λΆˆκ΅¬ν•˜κ³  거의 쓰이지 μ•ŠλŠ”λ‹€.

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

λΉ„κ΅νšŒμˆ˜λŠ” μ΅œμƒν‰κ· μ΅œμ•… λͺ¨λ‘ 일정

μ΄λ™νšŸμˆ˜

μž…λ ₯ μžλ£Œκ°€ μ—­μˆœμœΌλ‘œ μ •λ ¬λ˜μ–΄ μžˆλŠ” μ΅œμ•…μ˜ κ²½μš°, 

ν•œ λ²ˆ κ΅ν™˜ν•˜κΈ° μœ„ν•˜μ—¬ 3번의 μ΄λ™(SWAP ν•¨μˆ˜μ˜ μž‘μ—…)이 ν•„μš”ν•˜λ―€λ‘œ (비ꡐ νšŸμˆ˜ * 3) λ²ˆ = 3n(n-1)/2

μž…λ ₯ μžλ£Œκ°€ 이미 μ •λ ¬λ˜μ–΄ μžˆλŠ” μ΅œμƒμ˜ 경우, 자료의 이동이 λ°œμƒν•˜μ§€ μ•ŠλŠ”λ‹€.

O(N^2)

 

728x90
μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)
'πŸ“š 자료ꡬ쑰 및 μ•Œκ³ λ¦¬μ¦˜/μ •λ ¬ 및 탐색' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [μ•Œκ³ λ¦¬μ¦˜] 합병 μ •λ ¬(Merge Sort)μ΄λž€?
  • [μ•Œκ³ λ¦¬μ¦˜] μ‰˜ μ •λ ¬(Shell Sort)μ΄λž€?
  • [μ•Œκ³ λ¦¬μ¦˜] μ‚½μž…μ •λ ¬(Insertion Sort)μ΄λž€?
  • [μ•Œκ³ λ¦¬μ¦˜] 선택 μ •λ ¬(Selection Sort)μ΄λž€?
juno1105
juno1105
κ³΅λΆ€ν•˜λŠ” κ²Έ 포폴 λΈ”λ‘œκ·Έ
  • juno1105
    @juno1105
    juno1105
  • 전체
    였늘
    μ–΄μ œ
    • λΆ„λ₯˜ 전체보기 (89)
      • πŸ’¬ 자유 (3)
      • πŸ“– μ–΄ν•™ 곡뢀 (0)
      • πŸ“” 개발 ν”„λ‘œμ νŠΈ (4)
      • πŸ›  ν”„λ‘œκ·Έλž¨ 였λ₯˜ 해결법 (1)
      • πŸ“š 자료ꡬ쑰 및 μ•Œκ³ λ¦¬μ¦˜ (53)
        • μŠ€νƒ (4)
        • 큐 (4)
        • μ •λ ¬ 및 탐색 (17)
        • 리슀트 (5)
        • ν•΄μ‹œ (1)
        • 트리 (8)
        • νž™ (2)
        • κ·Έλž˜ν”„ (12)
      • πŸ’» 컴퓨터 ꡬ쑰 (0)
      • πŸš₯ λ…Όλ¦¬νšŒλ‘œ (8)
      • πŸ”° λ°±μ€€ (20)
        • 큐, μŠ€νƒ, 덱 (0)
        • DFS 와 BFS (3)
        • 그리디 (0)
        • λ™μ κ³„νšλ²• 1 (16)
        • λ™μ κ³„νšλ²• 2 (0)
        • μ΅œλ‹¨ 경둜 (0)
        • 트리 (0)
        • λ°±νŠΈλž˜ν‚Ή (0)
        • μœ λ‹ˆμ˜¨ νŒŒμΈλ“œ (0)
        • μ§‘ν•©κ³Ό λ§΅ (1)
      • 🌈 ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ (0)
      • πŸ“± μ•ˆλ“œλ‘œμ΄λ“œ μ•± (0)
  • λΈ”λ‘œκ·Έ 메뉴

    • ν™ˆ
    • νƒœκ·Έ
    • λ°©λͺ…둝
  • 링크

  • 곡지사항

    • ✨자료ꡬ쑰 μ•Œκ³ λ¦¬μ¦˜ 컀리큘럼✨
  • 인기 κΈ€

  • νƒœκ·Έ

    κ·Έλž˜ν”„νƒμƒ‰
    λΉ…μ˜€ν‘œκΈ°λ²•
    토읡 920점
    토읡 900
    토읡 900μ λŒ€
    토읡 910점
    토읡 950점
    μ •λ ¬
    토읡
    토읡 900점
    μ΅œλ‹¨κ²½λ‘œ
    μ •λ ¬ μ΅œμ„ μ˜ 경우
    μ•Œκ³ λ¦¬μ¦˜
    μ •λ ¬ μ΅œμ•…μ˜ 경우
    μ‹œκ°„λ³΅μž‘λ„
  • 졜근 λŒ“κΈ€

  • 졜근 κΈ€

  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.3
juno1105
[μ•Œκ³ λ¦¬μ¦˜] 버블정렬(Bubble Sort)μ΄λž€?
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”