차곡차곡 성 쌓기
article thumbnail
Published 2023. 8. 14. 21:47
선택 정렬 - Java CS/알고리즘

선택 정렬 개념

  • 제자리 정렬 (in-place sorting)이다. 입력 배열 외에는 추가 메모리를 요구하지 않는 정렬이다.
  • 정렬된 해당 요소가 넣어질 위치가 정해져 있다.
  • 자료 이동 횟수가 미리 결정된다. →  n-2번

 

구체적인 설명

  • 선택 정렬이란 첫 번째 위치부터 차례대로 정렬이 안된 요소 중 가장 작은 것(큰 것)을 선택하여 위치를 교환하여 점점 정렬을 완료해나가는 기법이다.
  • 첫번째 루프일 때 첫번 째 요소를 두번 째 요소부터 마지막 요소까지 비교하여 가장 작은 값을 찾으면 해당 요소와 교환한다. 두번 째 루프일 때 두번 째 자료를 세번 째 요소 부터 마지막 요소까지 비교하여 가장 작은 요소를 찾으면 해당 요소와 교환한다. 이렇게 n-1 요소까지 반복한다.

 

시간 복잡도

비교 횟수

  • (n-1) + (n-2) + … 2 + 1 = O(n^2)

이동 횟수

  • 3(n-1) ⇒ 매우 큰 편

 

특징

장점

  • 제자리 정렬이다
  • 자료 이동 횟수가 미리 결정된다.

단점

  • 안정성을 만족하지 않는다.
728x90

'CS > 알고리즘' 카테고리의 다른 글

Java BFS와 DFS 구현  (0) 2023.09.17
합병 정렬 (Merge Sort) - Java  (0) 2023.08.19
퀵 정렬 (Quick Sort) - Java  (0) 2023.08.17
삽입 정렬 - Java  (0) 2023.08.16
버블 정렬 - Java  (0) 2023.08.14
profile

차곡차곡 성 쌓기

@nagrang

포스팅이 좋았다면 "좋아요" 해주세요!