게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
자료구조] 이 코드에서 O(n^2) 인가요 O(n) 인가요???
게시물ID : computer_61829짧은주소 복사하기
작성자 : 이건뭐
추천 : 0
조회수 : 201회
댓글수 : 2개
등록시간 : 2012/10/10 18:38:01

for(token = get_token(&symbol, &n); token != eos; token = get_token(&symbol, &n)) 

{

if(token == operand) printf(“%c”, symbol);

else if(token == rparen) 

{

while(stack[top] != lparen)

print_token(pop());

pop();

}

else {

while(isp[stack[top]] >= icp[token])

print_token(pop());

push(token);

}

}


 for * while 로 n*n 번의 time complex 아닌가요???(시간복잡도)

다른 자료 여기저기 찾아봤는데 n번이라는 얘기가 있는데 제가 잘못이해하고 있나요??

(본 코드는 postfix 코드중 일부입니다.)

 

빅 오 자체가 최악의 경우를 생각하는건데

if 문에 있는 돌게 되는 경우로 쳐야되니까 O(n^2) 의 형태가 아닌가요?

근데 계산 이론상 O(n)인건 왜 그런거지...

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호