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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2010, 09:01   #1
lenny_24
Новичок
Джуниор
 
Регистрация: 16.11.2010
Сообщений: 1
По умолчанию Сортировка массива методами предсортировки и слияния, и пирамидальная сортировка.

Прошу помощи в написания программы (Delphi или Pascal ABC).
В конце, должно выводится, сколько было сравнений и перестановок, ну и собственно, сам массив отсортированный.
Помогите, пожалуйста...
lenny_24 вне форума Ответить с цитированием
Старый 19.12.2010, 16:01   #2
$ereg@
Новичок
Джуниор
 
Регистрация: 18.12.2010
Сообщений: 2
По умолчанию

Большая просьба,помоги мне ответить
Это пирамидальная сортировка с++
Заранее спасибо


#include<conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>// Что выполняет?


int x[11];

void swap(int *a, int *b)

{
int temp=*a;
*a=*b;
*b=temp;
}

void SiftUp(int n)

{
int i = n , p ; // р - для чего нужна переменная?
while ( i <1)
{
p = i /2;
if ( x [ p ]>= x [ i ]) break ;
swap(&x[p], &x[i]);
i = p ;
}

}

void SiftDown(int n)

{
int i=1,c;
while (( c =2* i )<= n )
{
if (( c +1)<= n )
if ( x [ c +1]< x [ c ])
c = c +1; // зачем?
if(x[i]<=x[c]) break;
swap (& x [ c ],& x [ i ]);
i=c;

}

}


main()

{
int i;
for(i=1; i<=10; i++)
x[i]=rand();
printf("\n Do sortirovki :\n");
for(i=1; i<=10; i++)
printf("%d ",x[i]);
for(i=2; i<=10; i++)
SiftUp(i);
for(i=10; i>=2; i--)

{
swap(&x[1], &x[i]); //В чем смысл вызова этой функции в этом месте программы
SiftUp(i-1);
}

printf("\n Posle sortirovki :\n");
for(i=1; i<=10; i++)
printf("%d ",x[i]);

}
$ereg@ вне форума Ответить с цитированием
Старый 17.04.2011, 18:57   #3
Trust_357
Пользователь
 
Регистрация: 10.03.2011
Сообщений: 68
По умолчанию

time.h-библиотека, которую Я использую для генерации случайных чисел
swap - меняет две переменных местами, а p не разобрался что делает, код крывой до ужаса, можно написать гораздо проще. Когда в сообщение вставляешь код, используй # над полем сообщения, появятся две ['CODE']['/CODE'], между них вставляй свой код
Trust_357 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пирамидальная сортировка nunj39 Общие вопросы C/C++ 0 21.06.2010 18:07
Пирамидальная сортировка QuadroX Фриланс 7 26.05.2010 20:16
Пирамидальная сортировка GaLiof Помощь студентам 1 28.03.2010 12:24
Пирамидальная Сортировка super-leon Помощь студентам 0 02.10.2009 20:52
Сорт.дерево и пирамидальная сортировка Санёк20 Паскаль, Turbo Pascal, PascalABC.NET 1 25.02.2008 18:22