Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2011, 07:21   #1
Dj Troy
Пользователь
 
Регистрация: 05.04.2011
Сообщений: 16
По умолчанию Сортировка методом пирамиды.

Привет всем. Помогите написать программу сортировка массива способом пирамиды на 10000 елементов взятых из файла 1 и запись отсортированного массива в файл 2. + чтоб программа выводила затраченное время. Задача такого же типа есть в инете но код не рабочий.
Dj Troy вне форума Ответить с цитированием
Старый 08.04.2011, 07:22   #2
Dj Troy
Пользователь
 
Регистрация: 05.04.2011
Сообщений: 16
По умолчанию

Кто поможет оставьте свою аську, если где то непонятно будет то спросить чтоб.
Dj Troy вне форума Ответить с цитированием
Старый 08.04.2011, 17:44   #3
Dj Troy
Пользователь
 
Регистрация: 05.04.2011
Сообщений: 16
По умолчанию

Нашёл код но не полный.
Код:
//процедура для перессылки записей
procedure swap(var x,y:integer);
var temp:integer;
begin
  temp:=x;
  x:=y;
  y:=temp;
end;
 
//процедура приведения массива к пирамидальному виду (to pyramide)
procedure toPyr(var data:TArray; n:integer); //n - размерность массива
var i:integer;
begin
  for i:=n div 2 downto 1 do begin
    if 2*i<=n then if data[i]<data[2*i] then swap(data[i],data[2*i]);
    if 2*i+1<=n then if data[i]<data[2*i+1] then swap(data[i],data[2*i+1]);
  end;
end;
 
//процедура для сдвига массива влево
procedure left(var data:TArray; n:integer);
var i:integer;
    temp:integer;
begin
  temp:=data[1];
  for i:=1 to n-1 do
    data[i]:=data[i+1];
  data[n]:=temp;
end;
 
//основная программа
for i:=n downto 1 do begin
    topyr(a,i);
    left(a,n);
end;
Dj Troy вне форума Ответить с цитированием
Старый 08.04.2011, 17:54   #4
Dj Troy
Пользователь
 
Регистрация: 05.04.2011
Сообщений: 16
По умолчанию

Вот ещё один вариант уже готовый. Только нужно чтоб он в файлы сохранял. Кто знает как задать
Код:
const
  MaxN=5;
var
  a: array [1..MaxN] of integer;
  i, j: integer;         // Счётчики
  Amin: integer;      // Минимальное значение массива в текущей итерации цикла
  IndMin: integer;    // Индекс минимального элемента
  tmp: integer;       // Временная переменная для перестановки значений элементов массива
 
begin
     // Заполнение массива
     writeln('Исходный массив:');
     for i:=1 to MaxN do
     begin
         a[i]:=random(101);
         write(a[i], ' ');
     end;
     writeln();
 
     for j:= 1 to MaxN-1 do
     begin
         Amin:=a[j];
         IndMin:=j;
         // Поиск минимального элемента
         for i:=j+1 to MaxN do
             begin
             if Amin>a[i] then
             begin
                 Amin:=a[i];           // Сохраняем значение минимального элемента
                 IndMin:=i;            // Сохраняем индекс минимального элемента
             end;
         end;
         // Перестановка местами первого и минимального элементов массива
         tmp:=a[j];
         a[j]:=Amin;
         a[IndMin]:=tmp;
     end;
 
     // Вывод массив
     writeln('Результат после сортировки:');
     for i:=1 to MaxN do
         write(a[i], ' ');
end.
Dj Troy вне форума Ответить с цитированием
Старый 08.04.2011, 18:18   #5
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

Код:
var 
....
f:text
....
begin
....
assign(f,'путь к файлу');
rewrite(f);
....
{запись в файл}
writeln(f, ...,...,...); // переменные для записи через запятую
close(f);
....
end.

Последний раз редактировалось unbanned; 08.04.2011 в 18:20.
unbanned вне форума Ответить с цитированием
Старый 08.04.2011, 18:24   #6
Dj Troy
Пользователь
 
Регистрация: 05.04.2011
Сообщений: 16
По умолчанию

Посмотри последний код который я написал. А как сделать чтоб вот задается у меня рандомом 5 чисел. чтоб они были записаны в файл а потом в другой файл сохранены
Dj Troy вне форума Ответить с цитированием
Старый 08.04.2011, 19:34   #7
Dj Troy
Пользователь
 
Регистрация: 05.04.2011
Сообщений: 16
По умолчанию

Нифига не получилось. Пост написаный Сегодня, 17:54 помойму не метод пирамиды
Dj Troy вне форума Ответить с цитированием
Старый 08.04.2011, 20:03   #8
Dj Troy
Пользователь
 
Регистрация: 05.04.2011
Сообщений: 16
По умолчанию

Кто может написать?
Dj Troy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка методом выбора dinamit_2011 C++ Builder 0 23.02.2011 16:40
Сортировка методом Хора nafanya_naf Помощь студентам 2 31.05.2010 19:37
Сортировка методом Шелла Nostalgia Помощь студентам 0 12.04.2010 14:13
Сортировка методом пузырька fygas1991 Общие вопросы C/C++ 5 15.11.2009 21:39
Сортировка методом линейного выбора и "быстрая" сортировка Карол Помощь студентам 4 27.09.2009 19:52