незваный гость писал(а):
:evil:
esperanto писал(а):
Находим за линейное время Н-к порядковую статистику, где Н количество элементов в строке
Не поясните, а как Вы это делаете? (задача о голандском флаге?)
Да, пожалуйста.
Найти статистику порядка х, можно или детерминистическим - невероятностным способом или используя вероятностный метод быстрого поика статистик( вероятностный метод - концептуальный аналог метода быстрой сортировки, т.е плохих случаев у него нет с вероятностью стремящейся экспоненциально быстро к единице.)
Первый метод, не прост(относительно) И описывается в книги Риверста.
Вероятностный метод изящен. И его идею я приведу тут. Пусть надо найти медиану.
Выбираем случайный элемент. И считаем сколько элементов массива меньше его. Если количество таких элементов больше половины то медиану, будем искать среди меньших элементов(причем придеться искать не медиану а иную статистку). Инача медиану будем искать среди больших элементов
f(n,arr)
y=random element of arr.
s=sum of elemenits of arr wich<y
if s=n return s
if s<n then return f(n-s,element of arr wich great then y)
if s>n then retutn f(n,elements of arr wivh less then y
end f