Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Тестирование программы


Автор: ahito1 18.11.2008, 18:55
Помогите, решить, или подсказать где искать решение задачки, условие распространенное, но нигде не могу найти:(

           "Определите, какое наименьшее количество операций обмена между парами элементов нужно сделать для данного начальго расположения, чтобы отсортировать числа в элементах памяти по возврастанию
            Формат входных данных:
            Первая строка файла SORT.DAT содержит натуральное число N (1=<N=<30000).
            Вторая строка файла содержит N попарно разных чисел, которые расположены соответственно в первом, втором, ...,  N элементе памяти в начале сортировки. Все числа находятся в интервале от 0 до 30000 включительно.
           Формат выходных данных:
           Файл SORT.SOL должен содержать одно число M - наименьшее возможное количество операций обмена между парами элементов памяти для достижения расположения чисел в порядке возврастания.

Например:
 ----------------SORT.DAT--------   --------SORT.SOL--------
-------------------------------------   ----------------------------
5                                                --               6           ---
1          6        5      9         8       --                            --- 
-------------------------------------    ---------------------------

Для данного примера числе можно предложить такие обмены:

1) 16598->61598,
2)           61598->51698,
3)                    51698->15698,
4)                               15698->95618,
5)                                        95618->85619,
6)                                                 85619->15689.

Нужно срочно, времени почти нет, сдавать нужно, а выучить за день не смогу, книги купил, литературы хватает, помогите пожалуйста!

Автор: Dobermann 18.11.2008, 19:02
Вроде сильно похож на алгоритм игры "Ханойские башни"

Автор: ahito1 18.11.2008, 19:05
Dobermann, а можно подробнее?smile

Автор: volvo877 18.11.2008, 19:35
ahito1, тебе что, еще раз повторить, что 6 - НЕ минимальное число? Соизволь пройтись по темам, которые ты же http://forum.vingrad.ru/forum/topic-236609.html http://forum.vingrad.ru/forum/topic-236611.html, и убедиться в этом (либо приведи нормальное условие задачи)... 

Расплодилось спаммеров... 

Автор: Dobermann 18.11.2008, 22:11
Тут про:
http://ru.wikipedia.org/wiki/Ханойская_башня
Тут сам алгоритм с исходником:
http://ishodniki.ru/list/info.php?cat=18&id=7814&show=alg-math&pr=math_combinat

Автор: ahito1 18.11.2008, 23:01
Dobermann, большое спасибо.
volvo877, нет, спасибо не надо, условие задачи такое, какое дали, других не давали, ну видимо ошиблись.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)