func do_atob()
{
if (예외가 있다면 처리 후)
return ;
2개의 피봇 가져오기
while (r-- > 0)
{
if (a_top_data > 큰 피봇)
{
ra();
ra 연산 횟수 ++;
}
else
{
pb();
pb 연산 횟수 ++;
if (b_top_data > 작은 피봇)
{
rb();
rb 연산 횟수 ++;
}
}
}
while ra, rb
rrr();
do_atob(ra 연산 횟수);
do_btoa(rb 연산 횟수);
do_btoa(pb - rb 연산 횟수);
}
C
복사
func do_btoa()
{
if (예외가 있다면 처리 후)
return ;
2개의 피봇 가져오기
while (r-- > 0)
{
if (b_top_data <= 작은 피봇)
{
rb();
rb 연산 횟수 ++;
}
else
{
pa();
pa 연산 횟수 ++;
if (a_top_data <= 큰 피봇)
{
ra();
pck->ra++;
}
}
}
do_atob(pa - ra 연산 횟수);
while ra, rb
rrr();
do_atob(ra 연산 횟수);
do_btoa(rb 연산 횟수);
}
C
복사