Реализации алгоритмов/Сортировка/Пирамидальная: различия между версиями
Содержимое удалено Содержимое добавлено
Нет описания правки |
|||
Строка 7:
#define MAXL 1000
#define root i+sh
void swap (int *a, int *b)▼
#define left 2*i+1+sh
#define right 2*i+2+sh
▲void swap (int *a, int *b) { int t = *a; *a = *b; *b = t; }
int main()
{
int a[MAXL], n, i, sh = 0, b = 0;
scanf ("%i", &n);
for (i = 0; i < n; ++i) scanf ("%i", &a[i]);
while (1)
{
Строка 24 ⟶ 23 :
for (i = 0; i < n; ++i)
{
if (
{
if (a[
if (a[
{
swap (&a[
b = 1;
}
else if (a[
{
swap (&a[
b = 1;
}
}
}
else if (
{
if (a[
{
swap (&a[
b = 1;
}
}
}
if (!b) sh++;
if (sh + 2 == n) break;
▲ break;
}
for (i = 0; i < n; i++) printf ("%i%c", a[i], (i != n - 1) ? ' ' : '\n');
return 0;
}
|