SORTOWANIE KOPCOWE

0

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;
}
0

a czy z kodu nie wynika co każda linijka robi?

0
notexists napisał(a)

a czy z kodu nie wynika co każda linijka robi?

jak by kolega wiedział jak się to odczytuje to by nie wstawiał i nie prosił. Także i ja dołączam się do prośby wytłumaczenia linijka po linijce kodu.

0
mantamonster napisał(a)

jak by kolega wiedział jak się to odczytuje [...]

więc z czym właściwie macie problem:

  1. nie znacie C++
  2. nie wiecie co to jest kopiec
  3. nie przeanalizowaliście sobie na papierze jak to działa
    ??
0

polecam Wprowadzenie do algorytmów Cormen'a

świetnie wytłumaczone kopcowanie.
zrozumiesz metodę działania = zrozumiesz kod

1 użytkowników online, w tym zalogowanych: 0, gości: 1