Как мы можем выбрать медиану 3-элементного разбиения для реализации быстрой сортировки.Точно так же мы можем выбрать медиану из 5, 7 или 11 элементов для быстрой сортировки?Если так, то как ??
Вам следует заглянуть в алгоритм Медиана медиан . Это линейный алгоритм времени со следующим повторением ...
T(n) ≤ T(n/5) + T(7n/10) + O(n)
... что O (n). Алгоритм подробнее ...
... и некоторый псевдокод ...
MedianOfMedians (A[1],...,A[n]) begin for i=1 to n/5 do { let m_i be the median of A[5i − 4], A[5i − 3],..., A[5i]; } pivot = Select(m1,...,m_n/5, n/10); // the pivot return pivot end
Ссылки
Надеюсь, это поможет. Христо