Metoda Conwaya

To metoda statystyczna stosowana w programowaniu, która pozwala ocenić złożoność algorytmu rozwiązania problemu, wykorzystując analizę jego potencjalnej skuteczności i łatwości zrozumienia dla użytkownika końcowego. Metodę opracował autor już w połowie XX wieku, James MacMillan Conway. Conway udowodnił dwa ważne wyniki: po pierwsze, że dla niektórych klas problemów istnieje wiele modeli złożoności obliczeniowej, tak że dla danego problemu może nie być oczywiste, do której innej klasy można przypisać podklasę; po drugie, pokazał, jak klasyfikować algorytmy według ich złożoności obliczeniowej, mierząc liczbę iteracji potrzebnych do wybrania dowolnego elementu w wynikach, aż do uwzględnienia żądanego. Krótko mówiąc, algorytm jest oceniany na podstawie tego, ile razy musi wypróbować opcje w nadziei, że odgadnie poprawną odpowiedź, aby ją uzyskać. Jednakże w przypadku tej metody szacowania złożoności algorytmu pojawia się pytanie, czy wynik algorytmu jest obliczoną wartością maksymalną, czy też wartością oczekiwaną/średnią, ponieważ może zaistnieć przypadek, w którym oczekiwany wynik będzie znacznie niższy niż maksymalny obliczony. Problem ten został częściowo rozwiązany w zmodyfikowanym oszacowaniu złożoności algorytmu, złożoności wzrostu, która zapewnia górną granicę oczekiwanego czasu działania.