디시인사이드 갤러리

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

갤러리 본문 영역

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

ㅇㅇ(123.109) 2018.12.15 04:02:35
조회 1531 추천 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/12/01 - -
AD 루틴 ON! 운동 찐템! 지금 할인 중 운영자 25/11/27 - -
공지 프로그래밍 갤러리 이용 안내 [97] 운영자 20.09.28 48841 65
2906818 ai잘쓰려면 킬각을 잘봐야함 프갤러(218.147) 03:28 16 1
2906811 홈서버 해킹당햇다 [1] 지구감옥갤로그로 이동합니다. 01:55 41 0
2906803 음기 충전 발명도둑잡기(39.7) 00:54 38 0
2906794 요즘 현생 열심히 살다보니 [7] 루도그담당(58.233) 12.06 86 2
2906792 자동차 머리 받침 모니터 headrest monitor 발명도둑잡기(39.7) 12.06 30 0
2906791 나는 유튜브 검색 기록 기능 꺼놓고 써서 통계가 없다 발명도둑잡기(39.7) 12.06 19 0
2906790 '사랑제일교회 자금 102억 부정수수'…선관위, 자유통일당 전광훈 발명도둑잡기(39.7) 12.06 14 0
2906786 오늘 오후부터 모뎀겸 공유기 아래 첫번째 공유기가 발명도둑잡기(39.7) 12.06 20 1
2906783 한국 우파 언론 90% 이상, 극우 유튜브난립 이유는 국가보안법 때문이다 발명도둑잡기(118.216) 12.06 24 1
2906782 윤석열 정권에서 사라진 방송사, 통일TV는 다시 방송을 하고 싶다 발명도둑잡기(118.216) 12.06 15 0
2906780 X세대 영포티는 조진웅 옹호하는거 같던데 [2] 프갤러(49.165) 12.06 76 0
2906779 컴터수리하러 가볼께. dp rgb 지원 모니터가 자꾸 끊기네. 넥도리아(119.195) 12.06 16 0
2906778 프갤 정모 성남서 했냐? 넥도리아(119.195) 12.06 24 0
2906777 Pull up to busan - Effie, 뉴욕타임즈 Best Alb 발명도둑잡기(118.216) 12.06 16 0
2906774 안되겟당 혼내줘야겟어 ♥발라당냥덩♥갤로그로 이동합니다. 12.06 36 0
2906773 Janet Jackson - Whoops Now! 발명도둑잡기(118.216) 12.06 16 0
2906766 사이드 플젝하는데 AI 개쩌네 만들어달라하면 다 만들어줌 프갤러(58.76) 12.06 53 0
2906765 핑크핑크는 혼내줘야행❤+ [2] ♥발라당냥덩♥갤로그로 이동합니다. 12.06 45 0
2906764 솔직히 여기프갤에서 최원종보다 코딩 못하는사람 [4] 프갤러(218.147) 12.06 70 0
2906763 슬기? [2] ♥발라당냥덩♥갤로그로 이동합니다. 12.06 43 0
2906762 슬기야아... 개멍청한유라갤로그로 이동합니다. 12.06 32 0
2906759 AI 슬기 [14] ♥발라당냥덩♥갤로그로 이동합니다. 12.06 81 0
2906758 ❤✨☀⭐⚡☘⛩☃나님 시작합니당☃⛩☘⚡⭐☀✨❤ [7] ♥발라당냥덩♥갤로그로 이동합니다. 12.06 50 0
2906757 북괴 연평도 침략 사건 생존자 증언 [2] ♥발라당냥덩♥갤로그로 이동합니다. 12.06 32 0
2906756 야. [2] 노력갤로그로 이동합니다. 12.06 41 0
2906755 근데 최원종 01년생이면 거의 천재 아니였음? [3] 프갤러(218.147) 12.06 58 0
2906754 안녕하세요 보안대학원 떨어지고 뭘해야할지 감도 안잡혀서 끄적여봅니다.. [1] 프갤러(220.65) 12.06 37 0
2906748 🌑개발자말고 아버지소개로 트럭정비하는게 맞냐? ㅇㅇ갤로그로 이동합니다. 12.06 28 0
2906745 codility로 코테 봤는데 submit task 안누르면 0점임? 프갤러(121.139) 12.06 20 0
2906744 수학 무관갤로그로 이동합니다. 12.06 41 0
2906743 랩틸리언을해부해서연구를한다 ㅠ 따당갤로그로 이동합니다. 12.06 37 0
2906742 다른 연예인 다 터지는데 왜 윾가놈은 멀쩡하냐? [2] 야옹아저씨갤로그로 이동합니다. 12.06 38 0
2906741 지금껏 다녀본 업소들 유형별 특징.txt [1] ㅇㅇ(118.235) 12.06 37 0
2906740 [대한민국] 우파에서 자기당에 칼 꽂는 자들 거듭 나오는 충격 이유! [1] ㅇㅇ(121.172) 12.06 21 0
2906739 평화로운 주말 [6] 개멍청한유라갤로그로 이동합니다. 12.06 68 2
2906738 냥덩이 큰집 이력 발명도둑잡기(175.223) 12.06 50 0
2906737 IQ 테스트 정답공개 사람낚는어부갤로그로 이동합니다. 12.06 72 0
2906736 [애니뉴스][투표] 웹에서 비주얼노벨 구현 라이브러리 ㅇㅇ(121.172) 12.06 18 0
2906735 안마방 체험 썰.jpg ㅇㅇ(118.235) 12.06 35 0
2906734 프갤이랑 뉴프로랑 글리젠 비슷한거 같은데 [7] 헬마스터갤로그로 이동합니다. 12.06 58 0
2906733 ❤✨☀⭐⚡☘⛩☃나님 시작합니당☃⛩☘⚡⭐☀✨❤ ♥발라당냥덩♥갤로그로 이동합니다. 12.06 45 0
2906732 자바 뉴비 질문이요 [3] ㅇㅇ갤로그로 이동합니다. 12.06 55 0
2906729 [대한민국] 온두라스 부정선거 - 트럼프 대통령 ㅇㅇ(121.172) 12.06 27 1
2906728 IQ 테스트 문제 하나 [9] 사람낚는어부갤로그로 이동합니다. 12.06 85 0
2906727 [애니뉴스][과학 컬럼] 사람들은 왜 광속을 불변이라고 할까? ㅇㅇ(121.172) 12.06 28 0
2906723 나님 ㅇ왤케 똑똑행? [5] ♥발라당냥덩♥갤로그로 이동합니다. 12.06 101 1
2906722 ❤✨☀⭐⚡☘⛩☃나님 시작합니당☃⛩☘⚡⭐☀✨❤ [4] ♥발라당냥덩♥갤로그로 이동합니다. 12.06 77 0
2906721 사이드 플젝하니까 성취감이 생기네 [2] 프갤러(58.76) 12.06 68 1
2906720 조국혁신당이 미래다 이기이기 타이밍뒷.통수한방(1.213) 12.06 30 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2