4 / 3 / 1
Регистрация: 16.10.2011
Сообщений: 69
1

Сортировка входного файла методом простого слияния

03.03.2012, 22:50. Показов 1308. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Разработать программу, обеспечивающую сортировку входного файла методом простого слияния файлов с подсчетом количества сравнений и перестановок. Входной файл текстовый, по одному числу в строке. Максимальное количество чисел - 1000. Диапазон допустимых значения от 0 до 65000. Результирующий файл также текстовый. В первой строке записывается количество сравнений, во второй - перестановок, с третьего и до конца файла - отсортированная последовательность. Имена входного и результирующего файлов задаются соответственно как первый и второй позиционные параметры командной строки.

вот этот метод сортировки http://ru.wikibooks.org/wiki/П... и_слиянием

не могу никак разобраться с теми примерами, которые есть на просторах интернета.
искала очень долго нужного примера, но все безуспешно, поэтому обращаюсь к вам за помощью.


срочно прошу вас о помощи

Добавлено через 1 час 42 минуты
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
program Mergesort;
type ma=array[1..1000] of longint;
  ftype = file of integer;
 
function Find(var fp:ftype; i:integer):integer;
       var
         t:integer;
       begin
         Seek(fp, i-1);
         Read(fp, t);
         Find := t;
       end;
 
  var
  i, j, k, l, t, h, m, p, q, r: integer;
    ch2:integer;
       up: Boolean;
           fp: ftype; count:integer;
         begin
           up := TRUE;
           p := 1;
           repeat
             h := 1; m := count;
             if up then
             begin
               i := 1; j := count; k := count+1; l := 2*count;
             end else
             begin
               k := 1; l := count; i := count+1; j := 2*count;
             end;
             repeat
               if m>=p then q := p else q := m;
               m := m-q;
               if m>=p then r := p else r := m;
               m := m-r;
               while (q<>0) and (r<>0) do
               begin
                 if Find(fp,i) < Find(fp,j) then
                 begin
                   Seek(fp, i-1); Read(fp,ch2);
                   Seek(fp, k-1); Write(fp,ch2);
                   k := k+h; i := i+1; q := q-1;
                 end else
                 begin
                   Seek(fp, j-1); Read(fp,ch2);
                   Seek(fp, k-1); Write(fp,ch2);
                   k := k+h; j := j-1; r := r-1;
                 end;
               end;
               while r<>0 do
               begin
                   Seek(fp, j-1); Read(fp,ch2);
                   Seek(fp, k-1); Write(fp,ch2);
                   k := k+h; j := j-1; r := r-1;
               end;
               while q<>0 do
               begin
                   Seek(fp, i-1); Read(fp,ch2);
                   Seek(fp, k-1); Write(fp,ch2);
                   k := k+h; i := i+1; q := q-1;
               end;
                  h := -1; t := k;
                  k := l;
                  l := t;
              until m =0;
              up := not up;
              p := p*2;
            until  p >= count;
            if not up then
              for i := 1 to count do
              begin
                Seek(fp, i-1+count); Read(fp,ch2);
                Seek(fp, i-1); Write(fp,ch2);
              end;
             end.
я совсем запуталась помогите
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2012, 22:50
Ответы с готовыми решениями:

Сортировка последовательности целых чисел методом прямого слияния и методом цифровой сортировки
Задание звучит вот так: 1.Разработать процедуры сортировки последовательности целых чисел методом...

Ускоренная сортировка методом пузырька и методом слияния
Друзья помогите. Условие задачи: Составить две программу, которые реализуют алгоритм ускоренной...

Сортировка методом слияния
Применяя сортировку методом слияния, отсортировать массив, файл, список, элементами которых ...

Сортировка массива методом слияния
Ввести массив А. В массив В перенести все элементы массива А, стоящие правее максимального...

1
4 / 3 / 1
Регистрация: 16.10.2011
Сообщений: 69
05.03.2012, 18:28  [ТС] 2
я так и знала что никто не ответит(
0
05.03.2012, 18:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.03.2012, 18:28
Помогаю со студенческими работами здесь

Сортировка методом слияния по возрастанию сумм цифр
Дана последовательность, элементы которой есть целые двузначные числа. Упорядочить...

Сортировка методом простого двухпутевого слияния
Помогите пожалуйста с прогой для лабараторной:написать программу,которая будет брать числа из...

Сортировка методом слияния
Народ помогите с сортировкой списка слиянием! Вот нашел код в интернете но не как не могу...

Сортировка методом прямого слияния
Помогите,отсортировать строки текстового файла в алфавитном порядке методом прямого слияния ...

Нисходящая сортировка методом слияния
Добрый день ребята!!! Мне нужно сделать нисходящею сортировку методом слияния! Я набросал...

Сортировка массива методом слияния
5. Разработать программу, выполняющую сортировку массива методом слияния. Массив предварительно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru