본문 바로가기
Computer Science/Sort

[ Computer Science ] Sort - 안정 정렬과 불안정 정렬

by 마늘아빠 2021. 3. 31.
728x90
반응형

컴퓨터 사이언스(CS) - 정렬 / 안정 정렬(Stable)과 불안정 정렬(Not Stable)

정렬이란?
정렬 알고리즘 ( sorting algorithm )이란 원소들을 번호 순 혹은 사전 순과 같이
일정한 순서대로 열거하는 알고리즘을 말한다.

정렬의 안정성
정렬의 안정성이란 정렬을 수행하고 난 후 요소들이 입력 때와 동일한 순서로 있는지 없는지의 차이를 기준으로 달라진다.

안정성은 몇 가지 이유로 중요하다.
예를 들면 데이터가 학생 이름으로 우선 정렬되면 데이터는 이제 어느 학급에 위치하는 지에 따라서 다시 정렬된다. 학생들이 같은 학급에 있다고 가정한다면, 이름의 순서는 특정 순서가 아니게 뒤섞이게 되는데 이는 성가신 문제이다. 

정렬을 수행하고 난 다음에도 원래 입력과 동일한 순서로 되어있다면 학생 이름은 정상적인 순서로 된다.

그래서 지금 이게 무슨 소리죠???

안정성 그림 설명 (Feat. Wiki)

안정 정렬(Stable)의 예시

안정성은 정렬을 하고 난 후에 요소들이 입력과 순서가 같은지가 기준이라고 했습니다.

위와 같은 경우 정렬을 하고 난 후에 하트5스페이드5정렬전의 순서와 같은 것을 확인 할 수 있습니다!

이와 같은 정렬에는
합병정렬, 삽입정렬, 거품정렬 등이 있습니다.

불안정 정렬(Not Stable)의 예시

위와 같은 경우 하트5스페이드5의 자리가 처음 입력의 순서와는 다른 것을 확인 할 수 있습니다!

이와 같은 정렬에는
퀵정렬, 힙정렬, 선택정렬, 셸정렬 등이 있습니다.
반응형