| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [Pascal]Сортировка числе по возврастанию |
| Автор: ahito1 17.11.2008, 23:01 |
| Помогите, решить, или подсказать где искать решение задачки, условие распространенное, но нигде не могу найти:( "Определите, какое наименьшее количество операций обмена между парами элементов нужно сделать для данного начальго расположения, чтобы отсортировать числа в элементах памяти по возврастанию Формат входных данных: Первая строка файла 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. Нужно срочно, времени почти нет, сдавать нужно, а выучить за день не смогу, книги купил, литературы хватает, помогите пожалуйста! |
| Автор: volvo877 18.11.2008, 01:29 |
| Я тебе в разделе Паскаль уже сказал, здесь тоже повторю: пока в условии нет никаких ограничений на то, как именно можно менять пары элементов, и как - нельзя, приведенный тобой ответ неверен. Это же можно сделать не за 6, а за 2 обмена: (6 <-> 5 и 9 <-> 8), и цифры точно так же будут отсортированы. И, заметь, условий задания это не нарушает... |