szacowanie złożoności obliczeniowej algorytmów i wydruk algorytmu

0

Witam, stoję przed wezwaniem zaliczenia egzaminu z algorytmów i struktur danych, jednak mam pewien problem z szacowaniem czy też obliczaniem złożoności obliczeniowej oraz wykonaniem wydruku algorytmu:

Przedstaw wydruk wykonany przez procedure, wywolaj dla tablicy A{1, 5, 60, 50, 30}
1: procedure PW (var A: Tab)
2: var i,j,k :integer;
3: begin
4: for i:=1 to N-1
5: begin
6: k:=1
7: for j:=i+ to N do
8: if A[j] <= A[k] then
9: k:=j
10: A[k] := A[i]
11: wrtiln (A)
12: end
13: end

intuicja podpowiada, że powinno wyjść O(n^2)
ale niestety nie jestem tego pewien, jakiś pomysł?

0

wewnętrzna pętla się wykona najpierw n-1 razy, potem n-2 itd. czyli:
(n-1) + (n-2) + ... + 1
mamy sumę ciągu arytmetycznego: [(pierwszy + ostatni) * ilość elementów] / 2 = n(n-1)/2 = n²/2 - n/2 = O(n²)

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