Форум программистов, компьютерный форум, киберфорум
Наши страницы

Отсортировать массив по убыванию через алгоритм пирамидальной сортировки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создать выходной массив строк, содержащий текст, состоящий из записей строго одинаковой длины http://www.cyberforum.ru/cpp-beginners/thread1193144.html
В литерном массиве строк есть текст, содержащий слова, разделенные пробелами. Предложения текста разделены точками. Длина записей в этом массиве строке произвольная. Создать выходной массив строк,...
C++ Парсинг html - Вывод всех ссылок с их текстовыми полями Доброго времени суток, уважаемые форумчане! Недавно встал вопрос о написании парсера для html. Задача парсинга: вывод всех ссылок с их текстовыми полями. Как можно реализовать без спец. либов для... http://www.cyberforum.ru/cpp-beginners/thread1193142.html
C++ Теорема персона - Моделирование случайных чисел с заданным законом распределения
Моделирование случайных чисел с заданным законом распределения как запрограммировать вот эту формулу?
C++ Подскажите,как создать из данного стека двунаправленный линейный стек
Пожалуйста,подскажите как исправить программу В программе я создаю стек из записей (структур) с данными о каком-то студенте. Считывается информация из файла. Как мне сделать не просто стек, а...
C++ Вычисление площади круга http://www.cyberforum.ru/cpp-beginners/thread1193124.html
Пусть элементами круга будут радиус (первый элемент), диаметр (второй элемент), длина окружности (третий элемент). Составить программу, которая по номеру элемента запрашивает его значение и...
C++ Три отрезка заданы координатами своих концов. Определить, можно ли построить из них треугольник Задача 1. Три отрезка заданы координатами своих концов. Определить, можно ли построить из них треугольник, если - да, то вычислить его площадь. подробнее

Показать сообщение отдельно
RavilSHai
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 82

Отсортировать массив по убыванию через алгоритм пирамидальной сортировки - C++

29.05.2014, 22:46. Просмотров 493. Ответов 4
Метки (Все метки)

В общем мне дан вещественный массив, нужно его отсортировать по убыванию через алгоритм пирамидальной сортировки
C
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
#include <stdio.h>
#include <stdlib.h>
 
 
void siftDown(int *numbers, int root, int bottom)
{
  int done, maxChild, temp;
  done = 0;
  while ((root*2 <= bottom) && (!done))
  {
    if (root*2 == bottom)
      maxChild = root * 2;
    else if (numbers[root * 2] > numbers[root * 2 + 1])
      maxChild = root * 2;
    else
      maxChild = root * 2 + 1;
    if (numbers[root] < numbers[maxChild])
    {
      temp = numbers[root];
      numbers[root] = numbers[maxChild];
      numbers[maxChild] = temp;
      root = maxChild;
    }
    else
      done = 1;
  }
}
void heapSort(int *numbers, int array_size)
{
  int i, temp;
  for (i = (array_size / 2)-1; i >= 0; i--)
    siftDown(numbers, i, array_size);
  for (i = array_size-1; i >= 1; i--)
  {
    temp = numbers[0];
    numbers[0] = numbers[i];
    numbers[i] = temp;
    siftDown(numbers, 0, i-1);
  }
}
void main()
{
    float a[10];
    for(int i=0;i<10;i++)
        a[i]=rand()%20-10;
    for(int i=0;i<10;i++)
        printf("%f ",a[i]);
    printf("\n");
    heapSort(a,10);
    for(int i=0;i<10;i++)
        printf("%f ",a[i]);
    printf("\n");
    getchar();
}
Ругается в основном тут
C
1
heapSort(a,10);
49 строка
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.