무작위 알고리즘의 예상 실행 시간은 최악의 실행 시간과 마찬가지로 잘 정의 된 개념입니다. 알고리즘이 무작위이면 실행 시간도 임의이므로 실행 시간의 예상 값을 정의 할 수 있습니다.
잘 알려진 예는 Quicksort입니다. 피벗을 임의로 선택하면 최악의 경우 실행 시간이 O (n ^ 2)로 유지되지만 예상 실행 시간이 O (n log n)이된다는 것을 알 수 있습니다. 무작위 배정이 매우 강력한 예는 가장 작은 엔 클로징 서클 문제입니다. 최악의 경우 실행 시간이 O (n ^ 3) 인 간단한 알고리즘이 있지만 실행 시간은 O (n)에 불과합니다.
평균 실행 시간은 일반적으로 '대부분의 입력에 대한'알고리즘의 동작에 대해 이야기 할 때 사용됩니다. 예를 들어 무작위로 입력을 생성하는 방법을 정의합니다. 예를 들어 배열을 임의의 숫자로 채우거나 1에서 n까지의 숫자를 무작위로 꿰매거나 (중복이 없음) 동전을 뒤집어 내림차순 또는 오름차순 집합을 얻습니다. 번호. 입력의 임의 분포에 대한 알고리즘의 평균 실행 시간은 알고리즘의 예상 실행 시간입니다 (이 경우 알고리즘은 무작위 화 될 수 없지만 입력은 입력됩니다).
예를 들어, 입력 라인을 배포하는 매우 이상한 방법을 발견 할 때까지 알고리즘이 존재하는 기하학적 문제가 첫눈에 잘 작동하는 것처럼 보입니다. 선이 무작위로 분포되어 있다고 가정하면 이러한 이상한 시나리오가 발생할 가능성이 거의 없으므로 알고리즘이 좋아질 수 있습니다.
대조적으로, 예상 실행 시간은 '불운이 없다면'알고리즘이 어떻게 수행되는지에 관한 것입니다. 동일한 입력에서 동일한 알고리즘을 재 시도하지만 다른 임의의 선택을 사용하면 알고리즘이 훨씬 빠르게 해결 될 수 있습니다. 평균 실행 시간은 알고리즘이 '대부분의 입력에서'얼마나 잘 수행되는지에 대해 설명합니다. 동일한 입력에서 동일한 알고리즘을 다시 시도해도 도움이되지 않습니다 (알고리즘이 무작위 인 경우 제외).