Algorytmy i struktury danych/Selekcja: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
|||
Linia 12: | Linia 12: | ||
* analiza (optymistyczna, pesymistyczna) | * analiza (optymistyczna, pesymistyczna) | ||
* kod programu z implementacją | * kod programu z implementacją | ||
Przykładowa implementacja: | |||
'''function''' AlgHoara(A[1..n],k); | |||
'''begin''' | |||
'''if'' n=1 && k=1 '''then''' '''return''' A[1]; | |||
m:=A[1]; l:=1; r:=n; | |||
// parition | |||
'''while'''(l<r) '''do''' '''begin''' | |||
'''while''' (l<n && A[l]<m) '''do''' l++; | |||
'''while''' (r>1 && A[r]>m) '''do''' r--; | |||
'''if''' (l<=r) '''then''' '''begin''' | |||
tmp:=A[l]; A[l]:=A[r]; A[r]:=tmp; | |||
l++; r--; | |||
'''end''' | |||
'''if''' (r<=k) '''then''' | |||
return AlgHoara(A[1..r],k) | |||
'''else''' | |||
return AlgHoara(A[r+1..n],k-r) | |||
end; | |||
== Algorytm magicznych piątek == | == Algorytm magicznych piątek == |
Wersja z 06:45, 15 lip 2006
Definicja
Dany jest ciąg liczb oraz liczba ,
Należy wyznaczyć -ty co do wielkości element tablicy .
Algorytm Hoar'a
- opis algorytmu,
- analiza (optymistyczna, pesymistyczna)
- kod programu z implementacją
Przykładowa implementacja:
function AlgHoara(A[1..n],k); begin if n=1 && k=1 then' return A[1]; m:=A[1]; l:=1; r:=n; // parition while(l<r) do begin while (l<n && A[l]<m) do l++; while (r>1 && A[r]>m) do r--; if (l<=r) then begin tmp:=A[l]; A[l]:=A[r]; A[r]:=tmp; l++; r--; end if (r<=k) then return AlgHoara(A[1..r],k) else return AlgHoara(A[r+1..n],k-r) end;
Algorytm magicznych piątek
- opis algorytmu,
- analiza,
- kod programu z implementacją
Plan:
- algorytm Hoare'a
- algorytm magicznych piątek