말할 때 알고리즘의 시간 복잡도 순서가 O (N log N)라고 어떻게 말할 수 있습니까?


22

O (N log N) 복잡성을 가진 것을 설명하기 위해 어떤 용어를 사용할 수 있습니까?

예를 들면 다음과 같습니다.

  • O (1) : 상수

  • O (log N) : 로그

  • O (N) : 선형

  • O (N log N) : ??????

  • O (N 2 ) : 2 차

  • O (N 3 ) : 입방


5
나는 종종 여기서 "준 선형"이라는 용어를 O(n · f(n))어디에 의미 f(n) << n합니다. 그러나 이것은 Ackermann 함수의 역수 O(n · log log n)와 같고 O(n α(n))어디에있는 것과도 일치 α(n)합니다.
Bakuriu


34
"아 엉 로그 엔"은 아마 충분할 것입니다.
user253751

답변:


60

"N log N"은 얻을 수있는만큼 훌륭하며 전문 프로그래머가 잘 이해해야합니다. 존재하는 모든 복잡성 클래스를 설명하는 단일 단어가 있다고 기대할 수는 없습니다.


6
“모든 복잡성 등급을 설명하는 단일 단어가있을 것으로 기대할 수는 없습니다.” 그러나 𝓞 ( n ⋅ log n )은 IMO라는 이름을 가질만한 중요한 클래스입니다. Steve Jessop이 말했듯이 linearithmic 은 이미 일반적입니다.
leftaroundabout

@leftaroundabout 당신이 주장 할 수있을만큼 사실은 흔하다. 그러나 "n log n"은 이름으로 잘 작동 할 정도로 짧습니다 (단음절 3 개). 비교를 위해 "대수"는 4 음절입니다. 대부분의 "n log n"알고리즘이 복잡성 $ N log_B (N / B) $를 얻는 외부 알고리즘에 도달하면 더 흥미 롭습니다. 이는 확실히 더 짧은 이름에 해당하는 복잡성 클래스 일 것입니다.
kasperd

10
컴퓨터 과학 석사 학위 학생으로서, 나는 대학 공부를 통해 "enn log enn"을 들었습니다. 나는 "선형"을들은 적이 없으며 처음에는 그것이 무엇을 의미하는지 이해할 수 없었습니다.
복원 모니카

@Kevin : 대수는 4 음절이지만 "log-enn"은 2입니다. 마찬가지로, O (N ^ 2)는 "2 차"가 아닌 "enn-squared"입니다. 나는 "입방체"가 "enn-cubed"보다 적은 음소를 가지고 있다고 가정하지만 후자의 용어는 여전히 더 일반적이라고 생각합니다.
supercat

51

정확히 이것을 의미 하는 전문 용어 선형 용어가 있습니다 .

모든 프로그래머가 보편적으로 이해한다고 생각하지 않으므로 조심하지 않으면 알려주는 것보다 더 모호합니다. 개인적으로 나는 보통 그것을 사용하지 않으며, 만약 그렇다면 내가 처음 사용했을 때 그것을 정의 할 것이다 O(N log N).


11
그 존재조차 알지 못했습니다!
David는 Reinstate Monica가 1

12

이 단어는 실제로는 다른 의미를 갖지만 때로는 "loglinear"라고도합니다. @Philip의 답변에서 알 수 있듯이 "N log N"을 사용 합니다.


1
로그 선형의 대체 의미는 무엇입니까? 'N log N'이 아닌 다른 이름을 원한다면 log-linear는 내가 사용하는 용어입니다.
Jonathan Leffler

2
@JonathanLeffler : en.wikipedia.org/wiki/Log-linear_analysis는 때때로 하이픈없이 철자가 있다고 가정 합니다. 물론 적절한 이름 공간을 사용하면 복잡한 클래스에 대해 같은 단어를 행복하게 사용할 수 있습니다.
Steve Jessop

@SteveJessop : 확실히 Google 검색을 통해 나온 것입니다. 로그 선형 분석이 설명 된대로 의심의 여지가 없지만 Google / Wikipedia 콤보를 신뢰할만한 것으로 받아 들일 것인지 확신 할 수 없습니다.
Jonathan Leffler

1
@JonathanLeffler : 또한 lin-log 또는 log-lin plot이라고 부르는 것을 의미 할 수 있습니다 (또는 게으 르기 때문에 실제로는 종종 log-log와 구별되는 로그 플롯이라고 부릅니다). 우리는 아마도이 대답이 어떤 의미를 가지고 있는지를 물 을 것입니다 :-)
Steve Jessop

2

요인 log n이 느리게 증가 하기 때문에 질적 설명은 O(n log n)"거의 선형"입니다. 청중에 따라 O(n log n)알고리즘 클래스 가 잘 알려져있을 수 있습니다. 예를 들어 n비교 별로 항목 을 빠르게 정렬하는 경우입니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.