Смежные строки (Re: Сортировка)

From
Valentin Davydov ()
To
Evgeniy Jirnov
Date
2002-05-06T17:19:48Z
Area
RU.ALGORITHMS
From: Valentin Davydov <val@sqdp.trc-net.co.jp>

>   From: Evgeniy Jirnov <Evgeniy.Jirnov@p13.f1230.n5030.z2.fidonet.org>
>   Date: Sun, 05 May 2002 10:35:40 +0400
> AB> В Пузырьке они смежные.  Смежные можно объменять местами без
> AB> дополнительных затрат.
>
>Да? Ну тогда "обменяй" пожалуйста эти две строчки,
>без дополнительных затрат ресурсов:
>evgeniy\0jirnov\0

Пусть элементарная операция - это копирование одного байта. Тогда получается:

evgeniy0jirnov0
evgeniyejirnov0
jvgeniyejirnov0
jvgeniyevirnov0
jigeniyevirnov0
jigeniyevgrnov0
jireniyevgrnov0
jireniyevgenov0
jirnniyevgenov0
jirnoiyevgenov0
jirnoiyevgeniv0
jirnovyevgeniv0
jirnovyevgeniy0
jirnov0evgeniy0,

то есть всего 13 шагов. Правда, я чуток съоптимизировал, воспользовавшись
тем, что строчка "jirnniyevgenov0" переходит сама в себя при переносе буквы
'n' с пятого места на двенадцатое. В общем же случае количество потребных
шагов равно суммарной длине обеих строк за вычетом единицы (последний ноль
в перестановках не участвует).

Вал. Дав.
--- ifmail v.2.15dev5
 * Origin: St. Petersburg State University (2:5020/400)