교재 p.340에서 sorting 시 stable 구문이 sort sequence가 보존된다고 하는데요..
예제 수행를 수행해 봐도 어떤 의미인지 이해가 안 가는 군요..
자세히 설명 부탁드립니다.
댓글 1
e-abap
2009.02.26 18:28
해당 구문은 잘 사용하지 않아서 간단하게 설명했는데요. 예리한 질문 입니다.
SORT에는 일반(Unstable SORT)와 Stable SORT가 있습니다. 이 두가지는 버퍼를 사용하는지의 여부에 따라서 알고리즘이 달라집니다.
예를들어, 다음의 숫자기 있다고 해 봅시다.
34 1 3 2 5
위 예에서 3이 두번 나왔습니다. 3(1) 4(2) 1(3) 3(4) 2(5) 5(6)
이것을 Unstable SORT를 하게 되면 다음과 같이 됩니다. 3 이 두개가 있기 때문에 KEY값에 해당하는 정보를 정확하게 인식하지 못해 3은 임의로 배열하게 됩니다. 즉, 다음과 같은 2개의 결과가 나올수 있겠지요. 1(3) 2(5) 3(1) 3(4) 4(2) 5(6) 1(3) 2(5) 3(4) 3(1) 4(2) 5(6)
그러나 Stable SORT는 KEY값 뿐만 아니라 KEY값에 처음에 위치했던 추가 정보까지 저장하고 있기 때문에 SORT + 추가 위치 버퍼를 활용하게 됩니다.
Stable SORT를 사용하면 다음과 같이 되겠지요. 1(3) 2(5) 3(1) 3(4) 4(2) 5(6)
stable SORT는 버퍼를 사용하기 때문에 일반 SORT보다 조금 느리다는 단점이 있습니다.
해당 구문은 잘 사용하지 않아서 간단하게 설명했는데요. 예리한 질문 입니다.
SORT에는 일반(Unstable SORT)와 Stable SORT가 있습니다. 이 두가지는 버퍼를 사용하는지의 여부에 따라서 알고리즘이 달라집니다.
예를들어, 다음의 숫자기 있다고 해 봅시다.
3 4 1 3 2 5
위 예에서 3이 두번 나왔습니다.
3(1) 4(2) 1(3) 3(4) 2(5) 5(6)
이것을 Unstable SORT를 하게 되면 다음과 같이 됩니다.
3 이 두개가 있기 때문에 KEY값에 해당하는 정보를 정확하게 인식하지 못해 3은 임의로 배열하게 됩니다.
즉, 다음과 같은 2개의 결과가 나올수 있겠지요.
1(3) 2(5) 3(1) 3(4) 4(2) 5(6)
1(3) 2(5) 3(4) 3(1) 4(2) 5(6)
그러나 Stable SORT는 KEY값 뿐만 아니라 KEY값에 처음에 위치했던 추가 정보까지 저장하고 있기 때문에
SORT + 추가 위치 버퍼를 활용하게 됩니다.
Stable SORT를 사용하면 다음과 같이 되겠지요.
1(3) 2(5) 3(1) 3(4) 4(2) 5(6)
stable SORT는 버퍼를 사용하기 때문에 일반 SORT보다 조금 느리다는 단점이 있습니다.
이상 입니다.