9개의 BYTE값이 있을때
BYTE A[9]; <-- 이렇게.. 있을때
9개를 순서를 정해서 5번째 놈을 뽑아야 합니다..
젤 큰놈이나 작은놈 뽑으믄 편한데 ㅠ.,ㅜ
여러가지 정렬 방법중에서
5번째 놈을 뽑는 가장 빠르고 간단한 방법은 뭐가 있을까요?
굉장히 많이 호출이 되야하는 함수가 될것 같아서
빠를수록 좋겠습니다만 ...
원래 median을 찾는 알고리즘들이 많이 있습니다만, 실제로 지금은 n이 작으니까 적용하기 좀 그렇고요.
제 생각엔 Selection Sort를 쓰거나, ( 5번까지만 정렬하면 되니까요. ) Quicksort를 조금 변형해서 쓰면 좋을것 같습니다. ( 일반 Quicksort처럼 분할 이후 양쪽을 전부 Sort하지 않아도 되겠죠 ? )
STL 알고리즘의 nth_element 를 이용하시면 어떨까요? 이름도 딱 아닙니까?
이 알고리즘을 실행하면 지정한 위치 왼쪽으로는 그것보다 작은 것 오른쪽으로는 큰것이 놓이게 됩니다. 물론 왼쪽의 것은 지정한 것보다 작다는 것뿐이지 그 묶음들간의 순서는 상관하지 않습니다. 오른쪽 것도 마찬가지 입니다. (크고 작은 것의 기준 - 오름/내림 - 등은 조건자를 이용하여 변경합니다.)
지정하신 위치는 전체 소팅을 한 결과와 같은 값이 오게 됩니다.
nth_elementh..
어케 쓰..쓰나요?
여기저기 뒤져보고
msdn도 봤는데;;
STL은 너무 어려운 ㅠ.,ㅜ
VENI VIDI VICI
C에서 쓰신다면 qsort(), bsearch() 쓰셔도 됩니다.
======================================== * The truth will set you free.
http://www.josuttis.com/libbook/algo/nth1.cpp.html
울랄라~ 호기심 천국~!!http://www.ezdoum.com
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
원래 median을 찾는 알고리즘들이 많이 있습니다만,실제로 지금은
원래 median을 찾는 알고리즘들이 많이 있습니다만,
실제로 지금은 n이 작으니까 적용하기 좀 그렇고요.
제 생각엔 Selection Sort를 쓰거나, ( 5번까지만 정렬하면 되니까요. )
Quicksort를 조금 변형해서 쓰면 좋을것 같습니다.
( 일반 Quicksort처럼 분할 이후 양쪽을 전부 Sort하지 않아도 되겠죠 ? )
STL 알고리즘의 nth_element 를 이용하시면 어떨까요? 이름도
STL 알고리즘의 nth_element 를 이용하시면 어떨까요? 이름도 딱 아닙니까?
이 알고리즘을 실행하면 지정한 위치 왼쪽으로는 그것보다 작은 것 오른쪽으로는 큰것이 놓이게 됩니다. 물론 왼쪽의 것은 지정한 것보다 작다는 것뿐이지 그 묶음들간의 순서는 상관하지 않습니다. 오른쪽 것도 마찬가지 입니다. (크고 작은 것의 기준 - 오름/내림 - 등은 조건자를 이용하여 변경합니다.)
지정하신 위치는 전체 소팅을 한 결과와 같은 값이 오게 됩니다.
-0-
nth_elementh..
어케 쓰..쓰나요?
여기저기 뒤져보고
msdn도 봤는데;;
STL은 너무 어려운 ㅠ.,ㅜ
VENI VIDI VICI
C라면..
C에서 쓰신다면 qsort(), bsearch() 쓰셔도 됩니다.
========================================
* The truth will set you free.
http://www.josuttis.com/libbook/algo/nth
http://www.josuttis.com/libbook/algo/nth1.cpp.html
울랄라~ 호기심 천국~!!
http://www.ezdoum.com
댓글 달기