주어진 임의의 실수의 정렬 된 배열 A [1 ... n] 각 i∈ [1 ... n-1]에 대해; A [I + 1] - A [I] 일 A.의 i 번째 갭짧은 간격 대 평균 간격
a) --Try A. 1의 N-1의 평균 간격 갭 계산 : O하여 (n) 시간 동안 A를 반복하고 각 간격을 'GapSum'에 추가합니다. GapSum/n-1 = 평균 갭
b) A의 i 번째 갭이 평균을 초과하지 않도록 평균의 법칙에 따라 i∈ [1 ... n-1] 그러한 i 번째 간격은 짧은 간격이라고합니다. A. 의 짧은 간격을 찾으십시오 - 시도하십시오 1 : 명백한 O (n) - 각 간격을 검사하고, 가장 작은 반환하십시오. A의 짧은 갭을 찾기 위해 점근 적으로 더 빠른 분할 및 정복 알고리즘이 있습니까?
내가 더 빨리이 작업을 수행 할 수있는 방법이 궁금합니까? 아마 내가 간과할만한 평균적인 자산이 있습니까? 방향이 도움이 될 것입니다.
--edit-- Nico는 평균 간격이 일정 시간에 계산 될 수 있다고 설명했습니다. 이것은 상수 시간으로 계산됩니까? 상수 시간의 평균 간격을 계산할 수있는 유일한 아이디어는 계산 전에 보조 배열을 준비하여 B [i]까지 간격의 합을 저장하는 것입니다. 그리고 평균 차이를 계산하는 것 B [N-1]/N-1
무엇을 시도 했습니까? 연구 노력없이 과제를 덤핑하는 것은 너무 힘듭니다. Btw, 일정한 시간 간격으로 평균 간격을 계산할 수 있습니다. –
지금까지 설명한 2 가지 해결책은 내가 설명한 2 O (n) 시간 방법뿐입니다. 나는 그것을 더 빨리 할 수있는 길을 찾으려고 잠시 노력했지만 실패했다. – RYS221
들어가기 위해서는 팁/방향이 필요합니다. 모든 갭 값을 계산하려면 평균값을 일정 시간으로 계산할 수 있습니까? – RYS221