n 개의 숫자 목록이 주어 졌으므로 중앙값보다 크거나 같은 숫자를 찾고자합니다. 이 문제의 최악의 복잡성에 대한 하한을 배우고 싶습니다. 중간 값을 찾는 하한선은 3 (n-1)/2라는 것을 압니다. 그러나 우리가 인 숫자를 이상의 중간 값으로 찾으려면 동일 할 것입니다.중간 값을 찾는 범위의 하한값
1
A
답변
1
목록의 첫 번째 요소 중 가장 큰 요소 (+1)가이 기능을 가질 것이라고 생각합니다. n/2 + 1 요소를 확인하고 가장 큰 요소를 저장하면 최대/2 - 1 요소가 중간 값 후보보다 클 수 있습니다. 따라서 선택한 숫자는 숫자의 위쪽 절반에 해당합니다. 즉, 숫자의 중앙값보다 크거나 같습니다.
그럼 n/2+1
에서 찾을 수 있습니다.
당신이 필요합니다
최악의 경우 : N/2 비교 식 및 N/2 + 1 과제.
최상의 사례 : n/2 개의 comparsions 및 1 개의 할당. 댓글에
Edit:
답변 :
예. n
이 짝수이면 모든 임의의 요소가 중간 값 이상이고 확률은 적어도 0.5
입니다. 왜 "적어도 0.5"? 거의 모든 숫자가 중간 값과 동일한 테스트 사례가있을 수 있습니다. 이 경우 확률은 더 높아집니다. 올바른 확률을 알고 싶으면 모든 요소를 확인해야합니다. 다른 숫자를 가진 다른 테스트 케이스에서 임의의 요소는 확률값 0.5로 정렬 된 목록의 위쪽 절반에있게됩니다.
n
이 홀수이면 확률이 0.5보다 큰 임의의 숫자에이 기능이 적용됩니다. 그것은 n/2-0.5
요소가 중간 값보다 작고 n/2+0.5
요소가> = 중간 값 (일반적인 테스트 경우)입니다. 최소 확률을 0.5로하고 싶다면 수정을해야합니다. 증거가없는 아이디어가 있습니다. 작동하지 않는다면 누군가가 나를 조롱 할 것입니다. 목록에서 2 개의 임의 값을 선택하십시오. 더 작은 것은 적어도 0.5 확률의 유효한 솔루션이 될 것입니다.
관련 문제
- 1. 여러 범위의 값을 찾는 SQL 쿼리
- 2. 특정 범위의 특정 값을 찾는 방법
- 3. 스키마의 목록의 중간 값을 찾는 방법
- 4. MySQL에서 열의 중간 값을 찾는 PHP 함수
- 5. MySQL을 찾는 중간
- 6. 도수 번호의 하한값
- 7. 다음 찾을 셀 값에서 셀 범위의 값을 찾는 방법 다음
- 8. Google지도에서 중간 점을 찾는 방법
- 9. 7 개의 숫자의 중간 값을 찾는 비교 횟수
- 10. 많은 RGB 이미지의 중간 값을 찾는 효율적인 방법
- 11. Apache Spark에서 Python Dataframe API로 중간 값을 찾는 방법은 무엇입니까?
- 12. quicksort 구현을위한 자바 median의 중간 값을 찾는 방법
- 13. 주어진 정밀도에서 gmp float 하한값
- 14. 범위의 값을 빠르게 검색
- 15. 특정 범위의 문자열 수를 찾는 방법 빨리?
- 16. 범위의 마지막 행을 찾는 방법은 무엇입니까?
- 17. PHP에서 범위의 소수 요소를 찾는 방법
- 18. 호 조각의 중간 점을 찾는 방법은 무엇입니까?
- 19. 안드로이드 텍스트 뷰의 중간 점을 찾는 방법
- 20. Jquery에서 중간 점을 찾는 방법은 무엇입니까?
- 21. 범위의 값을 텍스트에서 숫자로 변환
- 22. Excel : 특정 범위의 값을 찾고
- 23. 범위의 값을 기준으로 셀을 채우기
- 24. 내부 범위의 값을 받고 사업부의
- 25. 각도가 요소 범위의 값을 유지합니다.
- 26. 사용자 입력시 사용자 정의 값 하한값
- 27. 중간 값을 numpy 배열로 저장
- 28. BigQuery의 중간 값을 사용하는 보간
- 29. Ruby Method 중간 값을 연결하기
- 30. 중간 값을 얻는 방법은 SAS입니까?
[Dor et al. (2001) "중앙값 선택에 대한 하한선"] (http://www.nada.kth.se/~johanh/mediansdma.pdf), 하한은 적어도 2 * n * + o (* n *) 비교는 3 (* n * -1)/2 이상입니다. 문제에 대해 다른 가정을하고 있습니까? – Simon