PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2017/03/19 19:38:47
Name 무민
Subject [질문] [전산지식] stable sort의 장점은 뭔가요?
전산 공부하다가 궁금한점이 있어서 올립니다.


stable , unstable sort의 개념은 알겠습니다만은

: (같은 키값을 가지는 2개의 데이터를 정렬 하면, 그 순서가 뒤바뀌지 않을때, stable sort라 한다.)

stable ,unstable 나누는 이유가 뭔가요?

보기에는 stable이 더 효율적인건 같은데 ( 불필요한 교환? 을 하지 않으니)

그 외에는 다른 장점이 있을까요?





+ 아 그리고 heap sort가 전형적인 unstable sort라 하는데  힙소트는 bst써서 키값이 중복되면 안되지 않나요? (상관없는지.. 제가 잘못알고있는거라면 정정해주세요..)

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
17/03/19 21:13
수정 아이콘
조금 복잡한 정렬 방법들을 빼고 일반론으로 이야기하자면, stable 정렬에 해당하는 일반적인 정렬 방법은 머지, 삽입, 버블 정렬입니다. 이들은 동일 키 값에 대한 순서를 보장하지만, 메모리가 더 필요하거나(머지), 연산량을 더 많이 소모(삽입, 버블=O(n^2)) 합니다. 그런데 굳이 그러한 순서를 상관하지 않는다면 그냥 평균적으로 메모리 덜 먹고 성능이 좋은 알고리즘(예: 퀵, 힙 정렬)을 그냥 사용할 수 있습니다. 글에서는 불필요한 교환을 하지 않아서 효율적일 것 같다고 하셨지만, 순서를 보장하기 위하여 나머지 부분이 더 많이 교환되어야하는 경우(삽입, 버블 정렬)가 많습니다. 쉽게 이해하려면 그냥 순서를 보장하기 위한 제약이 걸려있다고 생각하면 조금 더 이해하기 쉬울겁니다.
stable과 unstable을 나누는 이유는 같은 키 값에 대하여 항상 같은 정렬 결과를 보여주고자 한다면 stable 정렬을 해야 합니다. 웹페이지에서 특정 데이터가 정렬된 결과를 항상 동일하게 보여줘야 한다고 할 때 unstable 정렬은 보여주는 데이터와 연관 없는 데이터가 추가되어도 웹페이지를 새로고침하면 순서가 계속 바뀔 수 있기 때문에 사용자 경험이 안 좋다고 느낄 수 있겠죠. 이러한것을 피하기 위하여 정렬할 때 그냥 unique한 또는 최대한 unique한 키 값으로 정렬하는 경우가 많습니다(예: 게시판 글번호, 시간 등). 이러면 굳이 stable, unstable을 구분할 필요가 없어지겠죠.
+ 힙정렬은 BST가 아니고 힙을 쓰기 때문에 키 값 중복 가능합니다. 힙과 BST는 다릅니다. (예: Min힙=모든 부모가 자식보다 작거나 같음, BST=모든 좌측 자식은 부모보다 작고 모든 우측 자식은 부모보다 큼)
참고로 읽을거리: https://en.wikipedia.org/wiki/Sorting_algorithm#Stability
17/03/19 22:19
수정 아이콘
아 정말감사합니다.. 조금만생각해봐도되는건데 무릎을 치고갑니다

힙부분도 이해가 되네요

답변감사합니다!!
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
101090 [질문] 스포츠/연예 게시판 글 찾습니다! [3] 도개걸윷모2068 17/04/16 2068
101088 [질문] 롤 실행시 이펙트가 깨져 보이네요 괴도키드2252 17/04/16 2252
101087 [질문] 미국에서 gsat 보셨던분 있나요? Kobe2282 17/04/16 2282
101086 [질문] 복학과 재수 중에 어떤 것을 선택하는 것이 나을까요? [13] 삭제됨3027 17/04/16 3027
101085 [질문] 30인 참주 시절에 대한 책을 찾고 있습니다 Samothrace2469 17/04/16 2469
101084 [질문] 여자친구의 '한입만' 이 너무 짜증납니다 [56] AminG10571 17/04/16 10571
101082 [질문] 이런 경우 유저가 어떻게 대처해야 하나요? [5] 클라스2779 17/04/16 2779
101081 [질문] 롤챔스 플레이오프 스포없이 어디서 봐야할까요? [4] 이슬먹고살죠2315 17/04/16 2315
101080 [질문] 곰무원시험 1년하면 어느정도 점수 받을수 있을까요 [9] 정공법3492 17/04/15 3492
101079 [질문] 안드로이드 보안업데이트 질문. [2] 진산월(陳山月)1823 17/04/15 1823
101078 [질문] 저가 커널 이어폰 추천부탁드립니다 [2] 후라이도2042 17/04/15 2042
101077 [질문] [노트북] 아주 간단한 설정 하나 질문드립니다. [2] 삭제됨1899 17/04/15 1899
101076 [질문] 피부에 부담을 안주면서 살찌기. [4] 따루라라랑2532 17/04/15 2532
101074 [질문] 대통령이 기업 돈을 뜯어 좋은데 쓰면 탄핵이 될까요? [27] 삭제됨4110 17/04/15 4110
101073 [질문] 아기들 킥보드 관련 [3] 희열2245 17/04/15 2245
101072 [질문] [스1] SSL? 직관 어떤가요? [1] snobbism2898 17/04/15 2898
101071 [질문] 4월 마지막 주 일주일 정도 해외여행지 추천해주세요 [4] 샨티2067 17/04/15 2067
101070 [질문] 경리단길 데이트코스 추천좀 부탁드립니다. [6] 깐딩7400 17/04/15 7400
101069 [질문] 한국 제외 유명한 댄스가수는 누가 있나요? [5] Tyler Durden2973 17/04/15 2973
101068 [질문] 유럽 신행 코스 어디가 좋을까요(로마in 로마out) [7] 제라스2171 17/04/15 2171
101066 [질문] 자동차 긁었는데 견적얼마나 나올까요? [7] 아스날4137 17/04/15 4137
101065 [질문] R 프로그램 fwf 파일 열 때 고정길이 설정 관련하여 halogen2703 17/04/15 2703
101064 [질문] 송염치약 대신할 치약 있을까요? [2] will3039 17/04/15 3039
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로