A ship in harbor is safe, but that is not what ships are built for.

코테 준비/Baekjoon Algorithm

[Day05 - 이론] 버블 정렬 & 선택 정렬

플리피나리 2024. 2. 13. 17:49
반응형

버블 정렬

  • 두 인접한 데이터의 크기를 비교해 정렬하는 방법
  • 루프를 돌면서 인접한 데이터 간의 swap 연산으로 정렬
  • 시간복잡도 O(n^2)
  • 정렬 과정
    1) 비교 연산이 필요한 루프 범위를 설정
    2) 인접한 데이터 값을 비교
    3) swap 조건에 부합하면 swap 연산 수행
    4) 루프 범위 끝날 때까지 2~3을 반복
    5) 정렬 영역 설정, 다음 루프 실핼할 때 해당 영역 제외
    6) 비교 대상이 없을 때까지 1~5를 반복 

 

선택 정렬

  • 대상 데이터에서 최대나 최소 데이터를 데이터가 나열된 순으로 찾아가며 선택하는 방법시간복잡도 O(n^2)
  • 시간복잡도 O(n^2)
  • 정렬 과정
    1) 남은 정렬 부분에서 최솟값 또는 최댓값을 찾음
    2) 남은 정렬 부분에서 가장 앞에 있는 데이터와 선택된 데이터를 swap
    3) 가장 앞에 있는 데이터의 위치를 변경해(index++) 남은 정렬 부분의 범위를 축소
    4) 전체 데이터 크기만큼 index가 커질 때까지, 즉 남은 정렬 부분이 없을 때까지 반복

 

ref)

https://0902.tistory.com/27

 

정렬 알고리즘(sorting algorithm) - 버블 정렬(bubble sort)

정렬 알고리즘 n개의 숫자가 주어졌을때 이를 오름차순 / 내림차순으로 정렬하는 알고리즘다양한 알고리즘이 있으며, 알고리즘에 따라 시간 복잡도가 다르다 2. 버블 정렬(bubble sort) •정렬되지

0902.tistory.com

 

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

 

[알고리즘] 선택 정렬(selection sort)이란 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

 

반응형

'코테 준비 > Baekjoon Algorithm' 카테고리의 다른 글

[Day05 - 1377번] 버블 소트  (0) 2024.02.13
[Day05 - 2750번] 수 정렬하기  (0) 2024.02.13
[이론] 트리  (1) 2023.12.30
[백준(BOJ)] 10828번 C++ 풀이  (0) 2022.02.27
[백준(BOJ)] 2750번 C++ 풀이  (0) 2021.11.24