5 / 5 / 2
Регистрация: 02.04.2013
Сообщений: 41
1

HeapSort (В чем ошибка?)

27.09.2013, 22:02. Показов 1107. Ответов 1
Метки нет (Все метки)

Программа не правильно выводит отрицательные значения, помогите исправить код.

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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
using namespace std;
void Heapify(int A[],int i, int heapsize);
void HeapSort(int A[],int heapsize);
void BuildHeap(int A[],int heapsize);
int main()
{
    const int heapsize=5;
    int A[]={1,-7,45,7,-2};
    for(int i = 0; i < heapsize; i ++)
    {
        cout <<  A[i]<<endl;
    }
    HeapSort(A,heapsize);
    cin.get();
    cin.get();
    return 0;
}
int Parent(int i)
{
    return (i/2); 
}
int Left(int i)
{
    return (2*i); 
}
int Right(int  i)
{
    return (2*i +1);
}
void Heapify(int A[],int i, int heapsize)
{
    int l = Left(i),
        r = Right(i),
        largest, temp;
    if ( l <= heapsize && A[l] > A[i]){   
        largest = l;
    }
    else {
        largest = i;
    }
    if (r <= heapsize && A[r] > A[largest]){  
        largest =r;
    }
    if (largest != i)
    {
        temp = A[i];      
        A[i] = A[largest];
        A[largest] = temp;
        Heapify(A,largest, heapsize);
    }
}
void BuildHeap(int A[],int heapsize)
{
    for (int i = (heapsize-1)/2; i>=0; i--)
    {
        Heapify(A,i,heapsize);
    }
 
}
void HeapSort(int A[],int heapsize)
{
    int temp;
    BuildHeap(A, heapsize);
    cout << "massiv:  ";
    for(int j = 0; j<heapsize; j++)
    {
        cout << A[j] << " ";
    }
    for (int i = heapsize; i>0; i--)
    {
        temp = A[1];
        A[1] = A[heapsize -1];
        A[heapsize -1] = temp;
        heapsize = heapsize - 1;
        Heapify(A,1, heapsize);
 
    }
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.09.2013, 22:02
Ответы с готовыми решениями:

heapSort. why error?
При проверке программы сайтом выходит Ошибка во время выполнения программы. Помогите понять,...

Heapsort v pascal
Помогите сделать Heapsort в pascal с подсчетом присваиваний и сравнений плиз помогите

LISP. heapsort
Пожалуйста, помогите реализовать древесную сортировку в LISP

Работа процедуры HEAPSORT
Используя в качестве модели рис 6.4 проиллюстрируйте работу процедуры HEAPSORT с входным массивом ...

1
2830 / 1639 / 253
Регистрация: 03.12.2007
Сообщений: 4,222
28.09.2013, 12:27 2
Разберись, откуда индексация массива начинается. Вообще в C++ - с нуля, а судя по строкам 36, 42, 72-73, 76 - с единицы.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2013, 12:27
Помогаю со студенческими работами здесь

Сортировка очереди HeapSort
Товарищи подскажите пожалуйста, нужно отсортировать очередь реализованную на списках методом...

Пирамидальная сортировка (HeapSort)
Ребят, помогите с сортировкой, будьте добры. Есть процедура сортировки по убыванию, нужно чтоб было...

Heapsort массива символов
Дан массив символов. Отсортировать по нестрогому возрастанию методом бинарных деревьев. После...

Сортировки Heapsort, Mergesort, Quicksort
Здравствуйте, очень срочно нужна помощь. Помогите сопоставить несколько сортировок в одном файле....


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru