문제

나는 내일 꽤 중요한 인터뷰를 위해 공부하고 있으며, 분류 알고리즘과 bigo 효율성에 대해 많은 어려움을 겪고있는 한 가지가 있습니다.

알아야 할 숫자는 무엇입니까? 최고, 최악 또는 평균 효율성?

도움이 되었습니까?

해결책

최악, 평균이 뒤 따릅니다. 소위 "숨겨진 상수"의 실제 영향에 대해 알고 있어야합니다. 예를 들어, 클래식 퀵조트 알고리즘은 최악의 경우 O (n^2), 평균적으로 O (n log n)이지만 Mergesort는 Mergesort입니다. 최악의 경우 O (n log n)이지만 QuickSort는 실제로 Mergesort를 능가합니다.

다른 팁

물론 그들 모두는 알아야합니다. 평균 사례에서 한 종류의 알고리즘의 이점은 최악의 경우에 끔찍한 적자가 될 수 있거나 최악의 경우는 그렇게 나쁘지 않지만 가장 좋은 경우는 좋지 않으며 잘 작동합니다. 분류되지 않은 데이터 등

요컨대.

분류 알고리즘 효율은 입력 데이터 및 작업에 따라 다릅니다.

  • 최대 속도 정렬, 아카이브 할 수있는 것은 n*log (n)입니다.
  • 데이터가 정렬 된 하위 데이터를 포함하면 최대 속도가 N*log (N)보다 나을 수 있습니다.
  • 데이터가 복제물로 구성되면 정렬은 거의 선형 시간에 수행 할 수 있습니다.
  • 대부분의 정렬 알고리즘에는 용도가 있습니다

빠른 정렬 변형의 대부분은 평균 사례도 N*log (N)을 가지고 있지만, 당신은 일반적으로 더 빠르면 다른 것보다 훨씬 빠르지 않습니다. 안정적이지 않으면 더 빠르지 만 안정적인 변형은 분수 속도가 느립니다. 주요 문제는 최악의 경우입니다. 최고의 캐주얼 픽스는 Introsort입니다.

대부분의 병합 정렬 변형은 N*log (N)에 고정 된 최고, 평균 및 최악의 경우를 가지고 있습니다. 확장하기가 안정적이고 비교적 쉽습니다. 그러나 총 품목의 크기에 비해 이진 트리 (또는 에뮬레이션)가 필요합니다. 주요 문제는 메모리입니다. 최고의 캐주얼 수정은 Timsort입니다.

정렬 알고리즘은 입력 크기에 따라 다릅니다. 10T 이상의 크기 데이터 입력이 합병 정렬 변형과 일치하지 않는다고 초보자 주장을 할 수 있습니다.

나는 당신 이이 사실들을 기억하지 않는 것이 좋습니다. 그들이 왜 그들이 무엇인지 알아보십시오. 내가 당신을 인터뷰하고 있다면, 나는 당신이 알고리즘을 분석하는 방법을 이해하는 것을 보여주는 질문을 할 것입니다. 웹 페이지 나 책에서 본 것을 다시 뱉을 수있는 것이 아니라. 또한, 인터뷰 전날은이 공부를 할 때가 아닙니다.

최고의 행운이 너와 함께하길 바래!! 어떻게 진행되었는지 의견에 다시보고하십시오!

나는 지금 내 대학에서 한 번의 인터뷰를 끝냈다 ...

모든 알고리즘에는 이점이 있습니다. 그렇지 않으면 존재하지 않습니다. 따라서 공부하고있는 알고리즘으로 무엇이 좋은지 이해하는 것이 좋습니다. 어디에서 잘합니까? 어떻게 개선 될 수 있습니까?

이 작업을 수행 할 때 자동으로 다양한 효율성 표기법을 읽어야한다고 생각합니다. 최악의 경우를 염두에두고 평균 사례에주의를 기울이십시오. 최선의 사례는 드 rare니다.

인터뷰를 위해 최선을 다합니다.

특정 조건이 존재할 때 사용할 수있는 다른 유형의 분류를 살펴볼 수도 있습니다. 예를 들어 Radix 정렬을 고려하십시오. http://en.wikipedia.org/wiki/radix_sort

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top