" /> 4주차 - 정렬 | BlackWerf's Blog
포스트

4주차 - 정렬

정렬

기초적인 정렬 알고리즘

  • 평균적으로 \(θ(n^2)\)의 시간이 소요됨

종류

  • 선택정렬
  • 버블정렬
  • 삽입정렬

선택 정렬

  • 각 루프마다 최대값을 탐색함
  • 최대원소와 맨 오른쪽 원소를 교환하고, 맨 오른쪽 원소를 제외함
  • 하나의 원소만 남을 때까지 위의 루프를 반복함
  • 수행시간: \(θ(n^2)\)

버블 정렬

  • 인접한 2개의 값의 크기를 비교함
  • 왼쪽의 값이 더 클 경우, 오른쪽의 값과 바꾼다
  • 수행시간: \(θ(n^2)\)
  • 가장 오른쪽의 값은 정렬 대상에서 제외함

삽입 정렬

  • 선택/버블 정렬과 다르게, 이미 정렬된 배열의 크기를 1개씩 늘리는
  • 해당 값의 위치에 값이 삽입한다
  • 배열 A[1, n]까지 정렬된 경우, 행의 삽입에 의해 A[1, …, n+1]까지 정렬됨
  • 수행시간: Worst Case / Average Case : \(θ(n^2)\)
    Best Case : \(θ(n)\)


고급 정렬 알고리즘

종류

  • 평균적으로 \(θ(nlog^n)\)의 시간이 소요됨

  • 병합정렬
  • 퀵정렬
  • 힙정렬

병합 정렬

  • 배열을 절반으로 나눔
  • 각 배열별로 재귀함수를 이용해 정렬 한 후, 병합함
  • 수행시간: \(θ(nlog^n)\)
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.