선형 (binary, lbound, ubound)

= binary
* (s+e)/2, A[]
start=0,end=6, match=7
binary(start,end,match){
while(e-s>=0){
m = (e+s)/2
if(A[m]==match){ return m+1; }
if(A[m]<match){ s = m+1; }
else{ e = m-1; }
}
}

= lower bound

start=0,end=e+1
lbound(start,end,match){
while(e-s>=0){
m = (s+e)/2
if(A[m]<match){ s = m+1 }
else{ e= m }
}
return e+1
}

= upper bound
start=0, end=e+1,match=7
ubound(start,end,match){
while(e-s>=0){
m = (e+s)/2
if(A[m]>match){ e = m }
else{ s = m+1}
}
return e+1
}

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중


%d 블로거가 이것을 좋아합니다: