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


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Andrey Dashkovsky                    2:5002/46.4    06 Feb 2002  23:10:53
 To : Stanislav Shwartsman
 Subject : Hyжен алгоpитм
 -------------------------------------------------------------------------------- 
 
 02 Фев 02 09:13, you wrote to Sergey Semenov:
 
  SS>>     Как я понимаю, очевидный алгоpитм это: в массиве находим
  SS>> минимальный, его отбpасываем, затем ищем следyющий минимальный,
  SS>> его снова обpасываем и так k-pаз ... Все pавно сложность
  SS>> полyчается O(n^2) :(    Пpо элементы массива ничего неизвестно
  SS>> :(((
 
  SS>  Читал я вас тут читал ... думал, что народ сам в конце-концов откроет
  SS>  Cormen 'Introduction to Algorithms' и посмотрит там решение.
 
  SS>  Цитирую:
 
  SS>  1. Выбор за линейное время.
 
  SS>     Randomized_Select(A,p,r,i):  // вернуть i по возрастанию элемент в
  SS>     --------------------------   // A[p...r]
 
  SS>     if(p=r) return A[p];
  SS>     q = Randomized_Partition(A,p,r);
  SS>     k = q-p+1;
  SS>     if(i<=k) return Randomized_Select(A,p,q,i);
  SS>     else return Randomized_Select(A,q+1,r,i-k);
 
  SS>     Randomized_Partition(A,p,r):
  SS>     ---------------------------
  SS>     i=random(p,r);
  SS>     swap(A[p],A[i]);
  SS>     return Partition(A,p,r);
 
  SS>     Partition(A,p,r):           // элемент x=A[p] выбирается граничным
  SS>     ----------------            // все, что больше него -> в конец
  SS> массива
  SS>     x=A[p];                     // все, что меньше -> в начало
  SS>     i=p-1;
  SS>     j=r+1;
  SS>     while(true)
  SS>     {
  SS>         repeat j-- until (A[j]<=x);
  SS>         repeat i++ until (A[i]>=x);
  SS>         if(i<j) swap(A[i],A[j]);
  SS>         else return j;
  SS>     }
  SS>     Время работы алгоритма - в худшем случае O(n^2). In common case -
  SS> O(n).
  SS>     Есть еще версия детерминисткая (мы ее даже в ВУЗе проходили на
  SS>     алгоритмах), которая всегда гарантирует O(n), но с очень большим
  SS> C.
  SS>     То есть результат можно ждать где-то в районе 12n или 30n (в
  SS> зависимости
  SS>     от реализации). Чтобы это стало быстрее просто сортировки надо
  SS> очень
  SS>     постораться ;)
 
  SS>     1. Просьба занести это в FAQ.
  SS>     2. Будут вопросы - я пока тут.
 
 Пример красивый, только этот метод быстрой сортировки весьма популярен, и в FAQ
 по сортировке , коорое тут было оно есть. А задача дейтсвительно ставилась без
 сортировки, точнее обычно бывает так: "исходный файл слишком велик,
 промежуточные файлы создавать нельзя".
 
 Andrey
 
 ... . у меня не жизнь, а абы чо (q) Ляпис
 --- GoldED+/386 1.1.4.7
  * Origin: Всёфигня кроме пчёл,хотя пчёлы,еслиподумать,тоже фигня (2:5002/46.4)
 
 

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

 Тема:    Автор:    Дата:  
 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/143013c61aa97.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional