알고리즘에서 '성능의 상한'이란?

알고리즘에서 성능과 소요 시간은 반비례 관계에 있다고 할 수 있을 것 같은데요. (성능이 올라가면 소요 시간은 줄어들고, 소요 시간이 늘어나면 성능은 떨어지는 것이고.)

그렇다면 '시간의 상한'='성능의 하한', '시간의 하한'=성능의 상한'이라 할 수 있지 않나요?

알고리즘의 시간 복잡도 점근적 표기법 중

빅-오 표기법은 '알고리즘의 성능이 아무리 나빠도 빅-오 표기법의 함수 시간보다는 시간이 적게 걸린다'라는 의미이고,

빅-오메가 표기법은 '알고리즘의 성능이 아무리 좋아도 빅-오메가 표기법의 함수 시간보다는 시간이 많이 걸린다'라는 의미라고 배웠습니다.

그렇다면 빅-오 표기법은 시간의 상한=성능의 하한, 빅-오메가 표기법은 시간의 하한=성능의 상한이라 할 수 있지 않나요?

제 교재에서는 빅-오 표기법이 '성능의 상한'이라고 설명하고 있어서 뭐가 뭔지 좀 헷갈립니다....

알고리즘에서의 '성능의 상한'이 제가 이해하고 있는 것과 다른 개념인가요?

그리고 이 뒤의 내용도 좀 헷갈립니다. 세 가지 표기법 중 빅-오 표기법을 가장 많이 사용하는 것과 빠른 알고리즘을 선호하는 것에는 무슨 관계가 있나요? 이 문단 자체가 무슨 이야기를 하고 있는 것인지 모르겠습니다.

2개의 답변이 있어요!

  • 질문자님께서 적으신 말씀만보면 빅오표기법이 성능의하한=시간의하한이고

    빅오메가표기법이 성능의상한=시간의상한이라고 적으신거같은데요..점근적표기법중에보시면요

    그렇게 된다면 빅오표기법을 가장많이 사용하는것이 맞는것같은데요...?

    다시한번 질문읽어보시구 질문주세요 !궁금하네요 저도

  • 안녕하세요 소중한후루티9입니다.

    알고리즘에서의 "성능의 상한"은 알고리즘의 최악의 경우 시간 복잡도를 나타냅니다. 다시 말해, 입력 크기에 대한 알고리즘의 실행 시간을 상한으로 제한하는 함수입니다. 즉, 이는 알고리즘이 입력 크기에 따라 최대로 소요할 수 있는 시간을 나타냅니다.따라서 빅-오 표기법은 알고리즘의 성능을 상한으로 표현하는 것입니다. 빅-오 표기법에서는 알고리즘의 최악의 경우 시간 복잡도를 나타내므로, 이것은 알고리즘의 성능의 상한을 의미합니다.반면에 빅-오메가 표기법은 알고리즘의 최선의 경우 시간 복잡도를 나타냅니다. 즉, 입력 크기에 따라 알고리즘이 최소로 소요할 수 있는 시간을 나타내는 것입니다. 따라서 빅-오메가 표기법은 알고리즘의 성능의 하한을 의미합니다.따라서 빅-오 표기법은 성능의 상한을, 빅-오메가 표기법은 성능의 하한을 나타내는 것이 맞습니다.빅-오 표기법이 가장 많이 사용되는 이유는 보통 알고리즘의 최악의 경우 시간 복잡도를 고려하여 알고리즘의 성능을 평가하기 때문입니다. 따라서 빅-오 표기법은 알고리즘의 성능을 예측하고 비교하는 데에 가장 유용합니다. 또한, 빅-오 표기법은 알고리즘의 실행 시간을 상한으로 제한하기 때문에 실제로 빅-오 표기법을 가진 알고리즘은 최악의 경우에도 빠르게 실행될 수 있습니다.