Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 1
Регистрация: 17.10.2014
Сообщений: 60
1

Сортировка массива пирамидальным методом

17.02.2015, 19:36. Показов 1003. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
разработать программу которая сортирует масив пирамидальным методом
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.02.2015, 19:36
Ответы с готовыми решениями:

Сортировка массива. Упорядочить нечетные элементы массива по возрастанию методом обмена
Упорядочить одномерный массив по возрастанию, методом обмена. (по возрастанию должны быть толбко...

Одномерные массивы. Вставка, удаление элементов массива. Перестановка элементов массива. Сортировка массива методом пузырька
Помогите пожалуйста! Дан массив, состоящий из N букв латинского алфавита а) Заполнить массив...

Сортировка массива методом дихотомии
Нужна процедура сортировки массива по убыванию методом деления пополам (метод бинарной вставки,...

Сортировка массива методом Шелла
Доброго времени суток))) Нужна срочная помощ в написании сортировки массива методом...

1
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
17.02.2015, 19:42 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

С просторов интернета.
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
uses crt;
type arr=array[0..10000] of integer;
 
procedure Sort(var A: arr; Count: Integer);
  procedure DownHeap(index, Count: integer; Current: integer);
  {Функция пробегает по пирамиде восстанавливая ее
  Также используется для изначального создания пирамиды
  Использование: Передать номер следующего элемента в index
  Процедура пробежит по всем потомкам и найдет нужное место для следующего элемента}
  var
    Child: Integer;
  begin
    while index < Count div 2 do
     begin
      Child := (index+1)*2-1;
      if (Child < Count-1) and (A[Child] < A[Child+1]) then
        Child:=Child+1;
      if Current >= A[Child] then
        break;
      A[index] := A[Child];
      index := Child;
    end;
    A[index] := Current;
  end;
 
{Основная функция }
var
  i: integer;
  Current: integer;
begin
  {Собираем пирамиду}
  for i := (Count div 2)-1 downto 0 do
    DownHeap(i, Count, A[i]);
  {Пирамида собрана. Теперь сортируем}
  for i := Count downto 0 do begin
    Current := A[i];{перемещаем верхушку в начало отсортированного списка}
    A[i] := A[0];
    DownHeap(0, i, Current);{находим нужное место в пирамиде для нового элемента}
  end;
end;
var a:arr;
    n,i:integer;
begin
clrscr;
randomize;
write('n=');
readln(n);
for i:=1 to n do
a[i]:=random(100);
Sort(a,n);
for i:=1 to n do
write(a[i]:4);
readln
end.
0
17.02.2015, 19:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.02.2015, 19:42
Помогаю со студенческими работами здесь

Сортировка двумерного массива методом вставки
Необходимо в двумерном массиве отсортировать столбцы по среднему значению по убыванию методом...

Сортировка массива методом простой выбор?
Сортировка массива методом простой выбор. Составить программу демонстрирующую на экран код...

Сортировка массива методом линейной вставки☺
У нас получилась разбежка практики с лекциями на 8 пар, вот и не знаю как решить☺ Дана...

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

Сортировка одномерного массива по убыванию методом вставки
разработать программу реализующую сортировку одномерного массива по убыванию методом вставки

Сортировка двумерного массива по убыванию по столбцам методом пузырька
Отсортировать всю матрицу n*m по столбцам по убыванию. Проверте есть ли в этой матрице элемент,...


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

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