srgrsgdsrg
witam. proszę o pomoc. porszę, błagam o wytłumaczenie krok po kroku co każda funkcja, linijka robi w tym programie. mam to zrobić na zaliczenie a jestem z tego zielony :(
#include <cstdlib>
#include <iostream>
#include <conio.h>
using namespace std;
// Dane typu int mogą przechowywać jedynie liczby całkowite
int tablica[] = {-21, 9, -3, 11, -1, 33, 191, 109, -5, 16}; // kompilator sam ustali rozmiar tablicy, deklaracja tablicy- wpisanie licz
int rozmiar = sizeof(tablica)/sizeof(tablica[0]); // Funkcja sizeof(tablica) zwróci rozmiar tablicy w bajtach a znając rozmiar bajtowy użytego typu danych da nam liczbę elementów:
void TworzStog(int * t, int n) // void oznacza paradoksalnie brak typu. Służy on na przykład do definiowania funkcji, które nie zwracają wartości
{ // int*t- tworzy wskaźnik do t, int n- tworzy zmienną n
for(int i = n-1; i > 0; i--) // i-- operator dekrementacji Inicjacja początkowych wartości zmiennych,Ustalenie warunku kończącego pętlę,Zwiększenie (zmniejszenie) licznika pętli
{
int poprz_index = (int)((i+1)/2-1);
if(t[poprz_index] < t[i]) // jeśli poprzedni index jest mniejszy od aktualnego to przechodzimy dalej
{
int temp = t[poprz_index];
t[poprz_index] = t[i];
t[i] = temp;
}
}
}
void SortowaniePrzezStogowanie(int * t, int n)
{
int k = n;
while(k > 0)
{
TworzStog(t, k);
int temp = t[0];
t[0] = t[k-1];
t[k-1] = temp;
k--;
}
}
int main()
{
SortowaniePrzezStogowanie(tablica, rozmiar);
for(int i = 0; i < rozmiar; i++)
cout << tablica[i] << " ";
cin.get();
return 0;
}