자격증/정보처리기사

[정보처리기사 필기 - 정렬] 버블정렬, 선택정렬, 삽입정렬

우당탕카멜레온 2024. 3. 28. 23:51

1. 버블 정렬  (Bubble Sort)

방법)

  1. 앞에서 부터 순서대로 진행
  2. 숫자가 이미 정렬이 되어있다면 변경 X , 왼쪽의 숫자가 더 크면 자리 변경
    * 서로 인접한 두 개를 비교해간다는 것이 특징.

출처:https://gmlwjd9405.github.io/2018/05/06/algorithm-bubble-sort.html

 

2.  선택 정렬 (Select  Sort)

방법)

  1. 전체 숫자를 보고 가장 작은 숫자를 골라서 맨 앞자리 배치.
  2. 그 다음으로 작은 숫자를 찾아서 두번째자리 배치
  3. 위 과정을 반복하면서 정렬.

출처 : https://gmlwjd9405.github.io/2018/05/06/algorithm-selection-sort.html

의문) 맨 앞자리가 제일 작은 숫자일 경우는?

2 8 4 7 6 같은 경우에는 변경되는 순서

  1. 첫 번째 회차:
    • 주어진 배열: 2 8 4 7 6
    • 최솟값은 2입니다. 따라서 2를 첫 번째 위치로 이동합니다.
    • 정렬된 배열: 2 8 4 7 6
  2. 두 번째 회차:
    • 주어진 배열: 8 4 7 6
    • 최솟값은 4입니다. 따라서 4를 두 번째 위치로 이동합니다.
    • 정렬된 배열: 2 4 8 7 6
  3. 세 번째 회차:
    • 주어진 배열: 8 7 6
    • 최솟값은 6입니다. 따라서 6을 세 번째 위치로 이동합니다.
    • 정렬된 배열: 2 4 6 7 8
  4. 네 번째 회차:
    • 주어진 배열: 8 7
    • 최솟값은 7입니다. 따라서 7을 네 번째 위치로 이동합니다.
    • 정렬된 배열: 2 4 6 7 8
  5. 다섯 번째 회차:
    • 주어진 배열: 8
    • 8은 이미 가장 큰 값이므로 이동하지 않습니다.
    • 정렬된 배열: 2 4 6 7 8

마지막 회차에는 이동이 없음으로 최종 4번만에 정렬이 완료!

3.  삽입 정렬

방법)

  1. 숫자를 하나씩 비교
  2. 해당 숫자가 더 작은 숫자가 없을 때까지 앞으로 보내서 자리를 찾아줌
  3. 원래 자리에서 하나씩 숫자칸이 밀리게 됌.

출처ㅣ https://gmlwjd9405.github.io/2018/05/06/algorithm-insertion-sort.html


정렬알고리즘에 대한 자세한 설명은
아래 블로그 참조
버블 정렬 : https://gmlwjd9405.github.io/2018/05/06/algorithm-bubble-sort.html
선택 정렬 : https://gmlwjd9405.github.io/2018/05/06/algorithm-selection-sort.html
삽입 정렬 : https://gmlwjd9405.github.io/2018/05/06/algorithm-insertion-sort.html