| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [C++] Помогите с задачей на С: |
| Автор: f0oZ 28.4.2008, 17:39 |
| Приветствую! Никак не могу правильно написать процедуру сортировки одномерного массива естественным двухпутевым слиянием. В алгоритме разобрался, а вот сам листинг программы не могу сделать, хоть убей! Кому не лень, выручайте студента! Только саму процедуру сортировки, остальное готово. И если можно с комментариями, для чего какая переменная Для справки, сам смысл этого метода: Этот алгоритм ищет упорядоченные отрезки с двух концов файла и переписывает их по очереди также в оба конца. Повторяя эту процедуру в цикле, мы приходим к середине файла, что означает окончание сортировки. Проиллюстрируем работу алгоритма на примере файла из 16 элементов: 503│87 512│61 908│170 897│275 653│426 154│509│612│677│765 703 -> -> -> -> -> <- <- <- <- <- Черточками разделены упорядоченные отрезки, стрелками показаны направления упорядочения внутри отрезков. На первом шаге сливаются отрезки 503 слева и 703 765 справа в один отрезок, который записывается в левый конец файла, на втором шаге сливаются отрезки 87 512 слева и 677 справа, которые записываются в правый конец файла и т.д.В результате файл принимает следующий вид: 503 703 765│ 61 612 908│ 154 275 426 │653│ 897 509 170 │677 512 87 -> -> -> -> <- <- <- Дальнейшие шаги дают следующие результаты: 87 503 512 703 765 │154 275 426 │653 │ 908 897 612 509 170 61 -> -> -> <- <- 61 87 170 503 509 512 612 677 703 765 897 │ 908 │ 653 426 275 154 -> -> <- <- 61 87 154 170 275 426 503 509 512 612 653 677 703 765 897 │ 908 │ -> <- Зарание спасибо! |
| Автор: v1rtu0z 30.4.2008, 11:00 |
| есть реализация сортировки исходного файла методом естественного двухпутевого слияния, но на Паскале.. прикрепил, можт поможет.. |
| Автор: archimed7592 30.4.2008, 19:39 |
| Для домашних заданий, курсовых, существует "Центр Помощи". Тема перенесена! |