중위 요소 (중앙값이 아닌 중간 요소)를 피벗으로 선택하는 경우 빠른 정렬의 최악의 경우에 가장 엄격한 상한은 무엇입니까?중간 요소를 피벗으로 사용하는 빠른 정렬의 최악의 경우의 상한선은 무엇입니까?
답변
선형 시간 중앙 피벗 선택 (및 @n.m.의 주석)을 사용하는 결정 론적 퀵 소트는 O (n 로그 n) 최악의 경우 성능을가집니다.
http://en.wikipedia.org/wiki/Quicksort#Selection-based_pivoting
배열은 항상
"결정 성있는 빠른 정렬에는 항상 O (n^2) 최악의 경우가 있습니다." - 임의성을 사용하는 방법도 있습니다. 생성 할 '임의의'숫자 (즉, PRNG의 시드)를 알지 못하면 최악의 경우를 구성 할 수 없습니다. 무작위성을 사용하는 경우와 같이 최악의 경우로 입력 예제를 언급 한 이유에 대해서는 잘 모르겠지만 중복을 이용하여 잘 알려진 최적화를 사용하는 것은 최악의 경우는 아닙니다. – Dukeling
@ n.m. 네 말이 맞아, 나는이 명백한 트릭을 잊어 버렸다. 선형 시간 중앙 선택 알고리즘을 사용하면 O (n log n)을 얻을 수 있습니다. –
중간 요소는 다음 입력 배열의 중간 최악의 경우에 대한 시간 복잡도가 O(nlogn)
의미하지만 당신은 정렬되지 않은 배열의 중간 요소를 의미한다면 그것은 최악의 경우 O(n^2)
경우 그 때문에 최악의 경우 0 : n-1에서 언밸런스 파티션이 발생할 수 있습니다. 하지만 평균 경우에도 여전히있을 것입니다. O(nlogn)
빠른 정렬의 최악 사례는 O (n2)입니다. 평균 사례는 O (nlogn)입니다.
O (n2)는 최악의 경우 상한입니다. O (nlogn)는 예상 경우에 대해 엄격한 경계입니다.
- 1. 버킷 정렬의 최악의 복잡성은 무엇입니까?
- 2. Java Quicksort 중간 요소를 피벗으로 바꾸는 방법
- 3. 빠른 정렬의 첫 번째 요소가
- 4. 빠른 정렬 최악의 경우 시간 복잡성?
- 5. 중간 점을 피벗으로 선택하는 경우
- 6. 빠른 정렬의 평균 복잡도는 얼마나됩니까?
- 7. 최악의 경우의 알고리즘 복잡성 결정
- 8. 수직 정렬의 중간
- 9. 빠른 정렬의 피벗 수
- 10. 타일 끼우기/정렬의 빠른 방법
- 11. 빠른 정렬의 공간 복잡성
- 12. 중간 값 quicksort의 중간 값의 최악의 경우 시간 복잡도는 무엇입니까?
- 13. 빠른 걸림 최악의 경우
- 14. Java 최우선 및 최악의 경우의 복잡도
- 15. 빠른 정렬의 최악의 복잡성은 무엇입니까? 첫 번째 요소는 항상 피벗 요소로 선택한다고 가정
- 16. 빠른 정렬이 경우의 이해
- 17. 최상의 경우와 최악의 경우의 시간 복잡도
- 18. 비 모노톤 최악의 경우의 복잡도에 대한 예
- 19. 이진 힙에 삽입 : 최악의 경우의 교환 수
- 20. 동적 세트의 최악의 경우의 실행 시간
- 21. 비교 기반 정렬의 최악의 경우 가장 엄격한 상한선입니까?
- 22. 빠른 캐시 정렬의 캐시 성능
- 23. 내 알고리즘의 최상의 케이스와 최악의 경우의 수식을 찾는 방법은 무엇입니까?
- 24. 최악의 시간 복잡도 목록
- 25. 병합 정렬의 최악의 경우가 여전히 n log n입니까?
- 26. 컴퓨터의 계산 능력의 상한선은
- 27. CUDA에서 더 적은 수의 스레드를 사용하는 경우의 빠른 배열 복사본
- 28. unordered_map에 대한 최악의 시나리오는 무엇입니까?
- 29. 2 스택 대기열에서 대기열을 해제하는 최악의 경우의 시간 복잡도는 얼마입니까?
- 30. 상각 된 복잡성과 최악의 경우의 시간 복잡성 사이의 연결
가운데 중간 또는 중간 위치의 항목은 중간입니까? – user2357112
최악의 경우는 항상 정사각형입니다. 중간 요소를 의미하는 경우 중간 요소를 의미하면 더 이상 최악의 경우가 아닙니다. – Leo
중간 위치의 항목이 중간이 아닌 경우 – user2331262