2 / 2 / 0
Регистрация: 09.09.2013
Сообщений: 51
1

HeapSort

30.03.2018, 23:22. Показов 2700. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Может кому понадобится.

To add lines of code to the C++ programm (HeapSort(C++)) that identifies
a) number of tree levels;
+b) number of comparisons preformed during the run of the algorithm;
+c) array values should be random integers;
+d) number of values are input by user



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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <ctime>
 
using namespace std;
void iswap(int &n1, int &n2)
{     
    int temp = n1;
    n1 = n2;
    n2 = temp;
}
 int main(){
    
    setlocale(0,"");
    srand(time(NULL));  
    cout<<"\n\tHEAP SORT:\n";
    {
    int countcompare=0;
    int countswap=0; 
    int n;
    cout<<"Enter amount of elements of array\n";
    cin>>n;
    int a[n];
    for ( int i = 0; i < n; ++i ) 
    {
        a[i]=rand() %100+1;
 
    }
 
    for ( int i = 0; i < n; ++i ) 
    cout<<a[i]<<" ";
    
    //-----------Heap Sort------------//
    
    int sh = 0; 
    bool b = false;
    for(;;)
    {
    b = false;
    for ( int i = 0; i < n; i++ )
    {  
        if( countcompare++,i * 2 + 2 + sh < n )
        {
        if(countcompare++, ( a[i + sh] >  a[i * 2 + 1 + sh] ) || ( a[i + sh] > a[i * 2 + 2 + sh] ) )
        {
            if (countcompare++, a[i * 2 + 1 + sh] < a[i * 2 + 2 + sh] )
            {
            iswap( a[i + sh], a[i * 2 + 1 + sh] );countswap++;
            b = true;
            }
            else if (countcompare++, a[i * 2 + 2 + sh] < a[ i * 2 + 1 + sh])
                 {
                     iswap( a[ i + sh], a[i * 2 + 2 + sh]);countswap++;
                     b = true;
                 }
        }
               
            if( countcompare++,a[i*2 + 2 + sh] < a[i*2 + 1 + sh] )
            {
            iswap( a[i*2+1+sh], a[i * 2 +2+ sh] );countswap++;
                        b = true;
            }
        }
        else if( countcompare++,i * 2 + 1 + sh < n )
             {
                 if( countcompare++,a[i + sh] > a[ i * 2 + 1 + sh] )
                 {
                     iswap( a[i + sh], a[i * 2 + 1 + sh] );countswap++;
                     b = true;
                 }
             }
    }
    if (!b) sh++; 
    if ( sh + 2 == n ) break;
    }  
     
    cout<<"\n\n\tAfter sorting:\n"<<endl;
    for ( int i = 0; i < n; ++i ) 
    {
        cout << a[i] << " ";  
    }
        
    cout << endl ;
    cout<<"\nDimension: "<<n;
    cout<<"\nCount compare: "<<countcompare;
    cout<<"\nCountswap: "<<countswap<<endl;
 
    
    }
    
    getch();
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.03.2018, 23:22
Ответы с готовыми решениями:

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

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

HeapSort (В чем ошибка?)
Программа не правильно выводит отрицательные значения, помогите исправить код. #include...

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

0
30.03.2018, 23:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.03.2018, 23:22
Помогаю со студенческими работами здесь

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

Количество обменов и сравнений в HeapSort
Всем доброго времени суток! :) Помогите, пожалуйста, разобраться с задачей. Мне нужно подсчитать...

[ilink32 Error] Error: Unresolved external 'List::heapSort(int *, int)' referenced from C:\USERS\LUTEN\DOCUMENTS\EMBARCA
#pragma hdrstop #pragma argsused #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;iostream&gt;...

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


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

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

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