Zadanie algorytmy, oszacowanie złożoności algorytmu.

0

Proszę o pomoc w oszacowaniu złożoności powyższego algorytmu oraz o podanie dokładnej liczby przypisania w liniach 1, 3, 5 oraz 6.

Na wejściu znajduje się tablica A zawierająca n liczb rzeczywistych.
Wyjście stanowi największa suma elementów dowolnego spójnego fragmentu tablicy
z wejścia. Na przykład, jeżeli na wejściu znajduje się tablica
[31, −41, 59, 26, −53, 58, 97, −93, −23, 84]
wówczas algorytm daje w wyniku sume elementów A[3..7], czyli 187.
Poniżej zaprezentowano algorytm znajdujący taką sumę.

SUMA(A, n)
1 pom ← 0
2 for d = 1 to n
3 do suma ← 0
4 for j = d to n
5 do suma ← suma + A[j]
6 pom ← max(pom, suma)
7 return pom

Oszacuj złożoność powyższego algorytmu oraz podaj dokładną liczbę operacji przypisania
w liniach 1, 3, 5 oraz 6.

0

a gdzie pytanie?

0

Proszę o pomoc w oszacowaniu złożoności powyższego algorytmu oraz o podanie dokładnej liczby przypisania w liniach 1, 3, 5 oraz 6.

1

50zl za złożoność i po 50 za każdą z liczb. Pasuje?
Bo za gotowce się płaci.

0

ale nadal nie ma pytania, jezeli chcesz gotowca, to tak jak napisal @Shalom

0

@Shalom, popsuję Ci interes. Dla linii 1 mogę podać odpowiedź za darmo.
Imho, algorytm jest niepoprawny - wynik jest niepoprawny np. wtedy gdy wszystkie elementy tablicy są ujemne.

0
  1. Jak już ktoś zauważył, algorytm jest dobry tylko wtedy, gdy w tablicy jest chociaż jedna liczba nieujemna
  2. Algorytm wygląda jak typowe O(n^2)
  3. w pierwszej linijce oczywiście 1
    W 3 linijce równie oczywiście n
    W 5 linijce n(n-1)/2(polecam wzór na sumę n kolejnych liczb naturalnych)
    W 6 linijce chyba zależy od zawartości tablicy. Jestem w stanie wyobrazić sobie tablice, dla których będzie 1, i takie, dla których będzie n.
    P.S. Sorry za zepsucie interesu :D

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