szukanie zaawansowane
 [ Posty: 1 ] 
Autor Wiadomość
Mężczyzna Offline
PostNapisane: 11 wrz 2017, o 09:27 
Użytkownik
Avatar użytkownika

Posty: 6473
Lokalizacja: 53°02'N 18°35'E
Kiedyś Benny czyli użytkownik profiles/125808.htm dostał kod sortowania stogowego w C

Nie przeanalizowaliśmy wtedy działania tej funkcji w postaci w której podałeś tylko
zaproponowałem ci przykładowy sposób poprawienia tego kodu

Przedstawiam tutaj kod problematycznej funkcji

Kod:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void Przesiewanie(int l,int p, int *A)
{
      int x;
      int i,j;
      i=l;
      j=2*i+1;
      while(j<=p)
      {
            if(j<p && A[j]<A[j+1])
              j++;
            if(x<A[j])
            {
                  A[i]=A[j];
                    i=j;
                    j=2*i+1;
            }
      }
      A[i]=x;
}


Zauważ że prowadzący przełożył kod procedury przesiewającej zamieszczonej u Wirtha z Pascala na C
Kod Wirtha miał jeszcze instrukcję skoku którą prowadzący usunął niczym jej nie zastępując

Przyjrzyj się pętli while
Jaki jest warunek na wejście do niej ?
Kiedy jest modyfikowana zmienna j ?
Jak powinna wyglądać pętla wykonująca się w czasie O\left( \log\left( n\right) \right) ?

Pytania do algorytmu

Dlaczego akurat tak są przypisane wartości początkowe zmiennym ?
Co robi pierwsza instrukcja warunkowa w pętli while ?
Za co jest odpowiedzialna druga instrukcja warunkowa w pętli while ?
Po zakończeniu pętli while jest jeszcze jedna instrukcja , dlaczego ona występuje ?

Pozostałe funkcje czyli funkcja budująca stóg oraz sortująca były dobrze napisane
Góra
Utwórz nowy temat Odpowiedz w temacie  [ Posty: 1 ] 


 Zobacz podobne tematy
 Tytuł tematu   Autor   Odpowiedzi 
 algorytmy w php  basia  6
 [Algorytmy] Złożoność czasowa algorytmów  Quaerens  6
 [Algorytmy] Koszt realizacji algorytmów  elethorn  8
 [Algorytmy] Kodowanie - metoda drzewa - zadanie 4  rafals  0
 [Algorytmy]Liczba podciągów ściśle rosnących o określonej dł  matinf  3
 
Atom [Regulamin Forum] [Instrukcja LaTeX-a] [Poradnik] [F.A.Q.] [Reklama] [Kontakt]
Copyright (C) Karpatka.pl