디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

코세야 이게 니가 말한 O(1) inplace 머지소트의 속도다

ㅇㅇ(123.109) 2018.12.15 04:02:35
조회 1527 추천 15 댓글 59

결론 부터 말하자면:
    직접 구현하는 머지소트의 성능 향상을 위해서 inplace 머지소트를 권하는 것은 error다.

코세가 높이 치하한 WikiSort:
    O(1) inplace merge 를 사용하는 sort 들.
    https://gall.dcinside.com/board/view/?id=programming&no=949810

//WikiSort, std::stable_sort, std::sort의 속도 비교
WikiSort:
    https://github.com/BonzaiThePenguin/WikiSort/blob/master/WikiSort.cpp
    ==> WikiSort와 std::stable_sort 벤치마크가 포함돼 있어서
        이 파일에 std::sort만 추가시켜서 테스트했다.

결과:
https://wandbox.org/permlink/Z94HpJDwknXCyRbY
//for vector(size_t); random 시퀀스
             |   times(seconds)     |   ratios
           n |   wiki   stable  sort   |   wiki stable sort
    ---------------------------------------------------
      200000|  0.039  0.034  0.034 |   1.14  1.00  1.00
      400000|  0.206  0.078  0.063 |   3.29  1.24  1.00
      600000|  0.144  0.123  0.100 |   1.44  1.23  1.00
      800000|  0.205  0.182  0.149 |   1.38  1.22  1.00
     1000000|  0.256  0.300  0.174 |   1.47  1.73  1.00
     1200000|  0.346  0.412  0.213 |   1.63  1.94  1.00
     1400000|  0.393  0.501  0.260 |   1.51  1.93  1.00
     1600000|  0.455  0.582  0.347 |   1.31  1.68  1.00
     1800000|  0.581  0.742  0.361 |   1.61  2.06  1.00
     2000000|  0.680  0.912  0.385 |   1.77  2.37  1.00
    # Tests completed in 9.82773 seconds
        total |  3.306  3.867  2.085 |   1.59  1.85  1.00


https://wandbox.org/permlink/MLzJahzaXsVozd85
//for vector(size_[3]); random 시퀀스
             |   times(seconds)    |   ratios
           n |   wiki   stable sort   |   wiki stable sort
    ---------------------------------------------------
      200000|  0.075  0.077  0.071 |   1.07  1.09  1.00
      400000|  0.197  0.351  0.123 |   1.60  2.85  1.00
      600000|  0.323  0.664  0.214 |   1.51  3.11  1.00
      800000|  0.440  1.005  0.376 |   1.17  2.67  1.00
     1000000|  0.648  1.489  0.392 |   1.65  3.80  1.00
     1200000|  0.932  1.686  0.594 |   1.57  2.84  1.00
     1400000|  0.994  1.837  0.607 |   1.64  3.03  1.00
     1600000|  0.996  2.121  0.635 |   1.57  3.34  1.00
     1800000|  1.034  2.260  0.739 |   1.40  3.06  1.00
     2000000|  1.113  2.509  0.815 |   1.37  3.08  1.00
    # Tests completed in 29.8015 seconds
         total |  6.752 13.999  4.567 |   1.48  3.07  1.00

note: WikiSort건 std::stable_sort건 많이 느리다(1.59배,1.85배).
    특히 stable_sort는 element복사비용이 증가하면(즉, element 크기가 증가하면) 더 그렇다(3.07배).
    WikiSort, stable_sort가 가끔, std::sort와 비슷하거나 오히려 더 빠르게 나오는 경우도 있다.
    내 컴퓨터에서는 이렇게 까지 심하게 속도차가 나지는 않긴 한데, wandbox에서는 재실행해도 비슷하게 나옴

나도 착각을 한게 있는데, 완성된 함수로 구현된 알고리즘들은 외부 버퍼(O(1) 크기 등)를 사용하는 게 있다는 것을 깜박했었디.
오래전에 봤던 거에다 순수 inplace 머지에만 관심을 뒀었기 때문에 착각하고 과장되거나 부정확하게 언급한 부분이 있었던거 같다.
그러나 적당크기의 외부버퍼를 사용하는 inplace 머지소트도, 코세님 조차 높이 치하하는 잘 짜여진 inplace 머지소트 조차
순수 성능향상을 목적으로 선택하기에는 기본적으로 느리다는 것은 돌려 봤으면 안다는 것은 변함이 없다.


코세야 진짜 "짜보고서 떠든"거 맞어?  거짓말 친거 아니고?


추천 비추천

15

고정닉 4

1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 며느리, 사위되면 시댁, 처가에 잘할 것 같은 스타 운영자 25/10/13 - -
AD 프로게이머가 될테야!! 운영자 25/10/01 - -
공지 프로그래밍 갤러리 이용 안내 [96] 운영자 20.09.28 47897 65
2896123 홈랩은 왜 하는거임?? 타이밍뒷.통수한방(1.213) 01:10 3 0
2896122 컴공 전공지식이라고 배우는것들은 다 저수준인데 ㅆㅇㅆ(124.216) 00:47 18 0
2896121 전공지식이 도움되려면 비전공 병신들이 엄두도 못내는데 가야 [2] 프갤러(110.8) 00:41 21 0
2896119 결국 오늘도 차단당했구나 ㅇㅇ(124.48) 00:23 18 0
2896118 진짜 다시 무시하고 차단해도 아이피를 계속 바꿔대니 [3] ㅆㅇㅆ(124.216) 00:12 47 0
2896117 학생때 배운거 써본적 거의 없는듯 [3] 루도그담당(58.239) 00:09 46 0
2896115 너가 따라다닌게 1년이 넘음 친구야 인생 낭비라 생각 안하냐 ㅆㅇㅆ(124.216) 00:06 30 0
2896114 갤 분위기 초상났네 [6] 루도그담당(58.239) 00:02 64 0
2896113 진짜 진심으로 안타까운데, 저새끼 계속 내 글마다 댓글달려서 알람울리는게 [2] ㅆㅇㅆ(124.216) 10.13 50 0
2896112 취직했다는 놈이 당장 뭐 말하는 개념마다 빈틈 털려서 딴새끼한테 [1] ㅆㅇㅆ(124.216) 10.13 47 0
2896110 여기서 남 욕한다고 니 인생이 바뀌는게 전혀 아님 124.48아 ㅇㅇ [1] ㅆㅇㅆ(124.216) 10.13 29 0
2896109 [1인,1개] 배달의,민족 30,000원 짜리 쓸 사람 써 ! [1] ㅇㅇ(223.39) 10.13 11 0
2896108 진심 이해가 안가는게 그거임. 내가 저새끼 나이때는 대학원가볼라고 [1] ㅆㅇㅆ(124.216) 10.13 36 0
2896106 자존감이 단단한 사람일수록 자길 내세우지 않는거임 [2] ㅇㅇ(218.149) 10.13 43 0
2896104 쟤 이해가 안 감. 보통 자기가 백수면 노력하지 않나? [3] ㅆㅇㅆ(124.216) 10.13 27 0
2896103 염병하지말고 현실에서 착실하게 살아라.. 좆병신새끼야 [1] ㅇㅇ(218.149) 10.13 18 0
2896102 저새끼는 자존감 채우는 방식 자체가 미숙함 [1] ㅇㅇ(218.149) 10.13 27 0
2896100 앱 웹 개발자는 개인정보 [3] ㅇㅇ(211.187) 10.13 33 0
2896099 '최신' 리액트 쓴다는놈이 Next.js 안써봤다 [1] ㅆㅇㅆ(124.216) 10.13 35 0
2896098 해결법을 다오. [3] 루도그담당(58.239) 10.13 30 0
2896097 웹상에서 자존감 채우려고 하니까 그따위 허영부리며 사는거야 [2] ㅇㅇ(218.149) 10.13 24 0
2896095 딱봐도 실력없어서 과제대행으로 용돈벌이나 하는 사회 최하층민새끼가 [5] ㅇㅇ(218.149) 10.13 27 0
2896093 개인사업자면 홈텍스를 인증해라.. [2] ㅇㅇ(218.149) 10.13 37 0
2896089 진짜 신기하지 않냐? 124.48 점마는 지가 말할수록 백수라는게 드러남 [1] ㅆㅇㅆ(124.216) 10.13 30 0
2896087 124.48 쟤는 거짓말이 너무 티가남. 그게 문제임 [3] ㅆㅇㅆ(124.216) 10.13 41 0
2896086 암만봐도 타임라인 진짜 씹쓰레기 같네 [4] 루도그담당(58.239) 10.13 48 0
2896082 전공에서 배운거 실무에서 얼마나 써먹는중? [6] ㅇㅇ갤로그로 이동합니다. 10.13 57 0
2896081 네트워크는 ㅈㅈ쳤다 ㅈㄴ노잼에어렵네 프갤러(14.43) 10.13 18 0
2896080 너네 아직도 그러고 사냐? 프갤러(59.16) 10.13 22 0
2896078 혹시 치킨한마리 나눔해주실분 계십니까. ㅇㅇ(223.39) 10.13 11 0
2896077 마이크로소프트10년동안 발전보다버그투성이가됬누 타이밍뒷통수한방(1.213) 10.13 10 0
2896075 나 오랜마네 바카라 사이트 들어가서 3번 찍었는데 다맞음 ㅇㅅㅇ ㅇㅇ(223.39) 10.13 8 0
2896074 님들아 백준 알고리즘 풀때 유튜브 영상틀어놓거나 노래들으면서 풀음? 프갤러(123.212) 10.13 13 0
2896073 북괴 김정은 한국에 홍수 일으켜 인명살상 노렸나 충격 ♥덩냥이♥갤로그로 이동합니다. 10.13 11 0
2896071 한우물 진득하고 꾸준하게 팔 수 있는거도 재능인거 같다 [6] chironpractor갤로그로 이동합니다. 10.13 42 0
2896070 야애니 ♥덩냥이♥갤로그로 이동합니다. 10.13 21 0
2896069 [단독] 서울시, 첫 민간인 ‘핵 벙커’ 만든다 발명도둑잡기(118.216) 10.13 15 0
2896068 신문고로 불법주차 신고하는 놈들 중 정상인은 없다는게 팩트임 [11] 야옹아저씨갤로그로 이동합니다. 10.13 42 5
2896067 엔지) 프갤러(211.243) 10.13 16 0
2896065 ‘근무시간 노래방’ 판사, “2차는 애기 보러가자”는 변호사에 “좋죠 형 발명도둑잡기(118.216) 10.13 13 0
2896063 특전사 前단장 "케이블타이 체포용 아냐…끌어내라 지시 못들어" 발명도둑잡기(118.216) 10.13 15 0
2896062 어제 쓰던글 이어서 쓰려다가 피궁해서 못쓰겟당 ♥덩냥이♥갤로그로 이동합니다. 10.13 22 0
2896061 윤석열·김건희 프랑스 방문 때 반려견 동반 위해 '개 의전' 준비 발명도둑잡기(118.216) 10.13 14 0
2896060 잼땅 ♥덩냥이♥갤로그로 이동합니다. 10.13 19 0
2896059 술 끊었더니 되려 피로하네 진짜... 존나 졸리네 ㅇㅇ(223.39) 10.13 14 0
2896057 할 말이 있소 발명도둑잡기(118.216) 10.13 16 0
2896056 독서모임 커플 발명도둑잡기(118.216) 10.13 13 0
2896055 카톡에 야한 사진 올려놓고 친구보고 카톡 음란물 유포로 신고하면 [6] 프갤러(110.8) 10.13 31 0
2896054 환율 1800원 근접 ㄷㅅㄷ 찢두순 ♥덩냥이♥갤로그로 이동합니다. 10.13 42 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2