자료구조 & 알고리즘

정렬

kyoulho 2023. 12. 11. 18:15

정렬이란?


정렬 알고리즘의 안정성

정렬 알고리즘은 안정된(stable) 알고리즘과 그렇지 않은 알고리즘으로 나눌 수 있다. 안정된 정렬이란 같은 값을 가진 요소의 순서가 정렬 전후에도 유지되는 것을 말한다. 안정되지 않은 알고리즘은 같은 점수인 경우 반드시 학번 순서대로 정렬되지는 않는다.

// 정렬 전
{ 
  0 = 13,
  1 = 9,
  2 = 6,
  3 = 4,
  4 = 6,
  5 = 12
}

// value를 오름차순으로 정렬
// 2,4 의 순서가 유지된다
{
  3 = 4,
  2 = 6,
  4 = 6,
  1 = 9,
  5 = 12,
  0 = 13
}

 

내부 정렬과 외부 정렬

정렬할 모든 데이터를 하나의 배열에 저장할 수 있는 경우에 내부 정렬을 사용하고  정렬할 데이터가 너무 많아서 하나의 배열에 저장할 수 없는 경우에 외부 정렬을 사용한다. 외부 정렬을 구현하려면 작업을 위한 파일 등이 필요하고 알고리즘도 복잡하다.

 

정렬 알고리즘의 핵심 요소

핵심 요소는 교환, 선택, 삽입이며 대부분의 정렬 알고리즘은 이 세 가지 요소를 응용한 것이다.