Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Stanislav Shwartsman                 2:400/520      02 Feb 2002  10:13:58
 To : Sergey Semenov
 Subject : Hyжен алгоpитм
 -------------------------------------------------------------------------------- 
 
 
 01 Feb 02 23:24, you wrote to Michael Ryazanov:
 
  SS>     Как я понимаю, очевидный алгоpитм это: в массиве находим
  SS> минимальный, его отбpасываем, затем ищем следyющий минимальный, его
  SS> снова обpасываем и так k-pаз ... Все pавно сложность полyчается O(n^2)
  SS> :(
  SS>     Пpо элементы массива ничего неизвестно :(((
 
  Читал я вас тут читал ... думал, что народ сам в конце-концов откроет
  Cormen 'Introduction to Algorithms' и посмотрит там решение.
 
  Цитирую:
 
  1. Выбор за линейное время.
 
     Randomized_Select(A,p,r,i):  // вернуть i по возрастанию элемент в
     --------------------------   // A[p...r]
 
     if(p=r) return A[p];
     q = Randomized_Partition(A,p,r);
     k = q-p+1;
     if(i<=k) return Randomized_Select(A,p,q,i);
     else return Randomized_Select(A,q+1,r,i-k);
 
     Randomized_Partition(A,p,r):
     ---------------------------
     i=random(p,r);
     swap(A[p],A[i]);
     return Partition(A,p,r);
 
     Partition(A,p,r):           // элемент x=A[p] выбирается граничным
     ----------------            // все, что больше него -> в конец массива
     x=A[p];                     // все, что меньше -> в начало
     i=p-1;
     j=r+1;
     while(true)
     {
         repeat j-- until (A[j]<=x);
         repeat i++ until (A[i]>=x);
         if(i<j) swap(A[i],A[j]);
         else return j;
     }
     Время работы алгоритма - в худшем случае O(n^2). In common case - O(n).
     Есть еще версия детерминисткая (мы ее даже в ВУЗе проходили на
     алгоритмах), которая всегда гарантирует O(n), но с очень большим C.
     То есть результат можно ждать где-то в районе 12n или 30n (в зависимости
     от реализации). Чтобы это стало быстрее просто сортировки надо очень
     постораться ;)
 
     1. Просьба занести это в FAQ.
     2. Будут вопросы - я пока тут.
     E-mail: gate@fidonet.org.il
     Voice Phones: 972-4-8330554 (home), 972-5-4481073 (cell)
 
 Bye !
 Stanislav     (AKA Night's Man)                        [Team Technion]
 ---
  * Origin: Gate From Another World ... From Haifa, Israel (2:400/520)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Hyжен алгоpитм   Sergey Semenov   20 Jan 2002 18:15:34 
 Re: Hyжен алгоpитм   Andrew Ezhguroff   29 Jan 2002 04:36:18 
 Re^2: Hyжен алгоpитм   Sergey Semenov   30 Jan 2002 00:33:10 
 Re: Re^2: Hyжен алгоpитм   Ilya Potrepalov   31 Jan 2002 10:08:48 
 Re^2: Re^2: Hyжен алгоpитм   Sergey Semenov   02 Feb 2002 00:52:06 
 Re^2: Hyжен алгоpитм   Ilia Kantor   05 Feb 2002 23:10:16 
 Re: Hyжен алгоpитм   Sergey Politov   29 Jan 2002 06:36:03 
 Re: Hyжен алгоpитм   Sergey Semenov   30 Jan 2002 00:34:36 
 Re: Hужен алгоритм   Michael Ryazanov   31 Jan 2002 17:48:00 
 Re^2: Hyжен алгоpитм   Sergey Semenov   02 Feb 2002 00:24:02 
 Hyжен алгоpитм   Stanislav Shwartsman   02 Feb 2002 10:13:58 
 Hyжен алгоpитм   Dmitry Isotmin   02 Feb 2002 12:24:57 
 Hyжен алгоpитм   Stanislav Shwartsman   02 Feb 2002 13:46:45 
 Re: Hyжен алгоpитм   Sergey Politov   03 Feb 2002 05:41:25 
 Re: Hyжен алгоpитм   Vitaliy Bochcarev   03 Feb 2002 10:11:28 
 Hyжен алгоpитм   Stanislav Shwartsman   03 Feb 2002 10:55:54 
 Re: Hyжен алгоpитм   Sergey Politov   04 Feb 2002 06:09:08 
 Hyжен алгоpитм   Andrew Simontsev   03 Feb 2002 14:37:34 
 Re: Hyжен алгоpитм   Sergey Politov   04 Feb 2002 05:34:32 
 Hyжен алгоpитм   Comoderator Of Ru Algorithms   06 Feb 2002 23:15:49 
 Hyжен алгоpитм   Ilia Kantor   05 Feb 2002 23:26:08 
 Hyжен алгоpитм   Andrey Dashkovsky   06 Feb 2002 23:10:53 
 Re^3: Hyжен алгоpитм   Sergey Politov   02 Feb 2002 08:09:08 
 Hyжен алгоpитм   Stanislav Shwartsman   02 Feb 2002 10:31:02 
 Re: Hужен алгоритм   Michael Ryazanov   03 Feb 2002 21:26:00 
 Re: Hyжен алгоpитм   Pavel Fomin   31 Jan 2002 03:56:23 
 Re^2: Hyжен алгоpитм   Sergey Semenov   02 Feb 2002 00:44:06 
 Re^2: Hyжен алгоpитм   Pavel Fomin   02 Feb 2002 03:40:21 
 Hyжен алгоpитм   Andrey Dashkovsky   06 Feb 2002 21:02:39 
 Re: Hyжен алгоpитм   Yury Los   07 Feb 2002 09:41:27 
 Hyжен алгоpитм   Mike Roschin   01 Feb 2002 19:57:01 
Архивное /ru.algorithms/17853c5bb17c.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional