Czytam książkę Principles of Computer Science (2008) Carla Reynoldsa i Paula Tymanna (wydaną przez Zarysy Schauma).
Drugi rozdział przedstawia algorytmy z przykładem wyszukiwania sekwencyjnego, które po prostu iteruje listę nazw i zwraca PRAWDA, jeśli dana nazwa zostanie znaleziona na liście.
Autor kontynuuje (strona 17):
Mówimy, że „kolejność wzrostu” algorytmu wyszukiwania sekwencyjnego to n. Zapis tego jest T (n). Mówimy również, że algorytm, którego kolejność wzrostu mieści się w pewnym stałym współczynniku T (n), ma wartość theta NL. „Wyszukiwanie sekwencyjne ma theta n.” Rozmiar problemu wynosi n, długość przeszukiwanej listy.
Naprawdę trudno mi się na to zgodzić. Książka jest pełna błędów, więc nie jestem pewien, czy coś mi brakuje, czy literówka w powyższym akapicie. Ogólnie angielski rzadko kiedy zdanie kończy się na „... powiedz”.
Jestem zdezorientowany.
Co oznacza skrót T? Książka nie wyjaśnia. Czy to czas, czy Theta?
Jeśli „theta NL” oznacza „Wyszukiwanie sekwencyjne ma theta n”. Co oznacza L? „Liniowy” czy „długość”?
Napisałem do wydawców z prośbą o wyjaśnienie. Powiedzieli, że przekażą moją wiadomość autorom. Nie odpowiedzieli. Próbowałem też spojrzeć na inne źródła, ale wciąż mam dokuczliwe wrażenie, że coś źle rozumiem - więc nie mogę odpocząć, dopóki nie zdekoduję tego akapitu.
Jeśli ktoś ma kopię tej książki i zrozumiał ten akapit. Byłbym wdzięczny za informację, czy ten akapit jest dokładny, czy wyjaśnienie go innymi słowy. Dzięki.
Odpowiedzi:
Akapit jest błędny. Niestety wygląda to dokładnie na coś, co student, który nie rozumie materiału, napisałby jako odpowiedź na ćwiczenie. W tego rodzaju bzdurach nie ma miejsca w podręczniku. Nie rób gwałtownych ruchów. Odłóż książkę. Odsuń się od książki.
To oczywiście zostało zniekształcone. Myślę, że autorzy zamierzali napisać coś takiego,
Ale proszę, nie mówimy, że „ma theta ”, tak jak, jeśli jest twoją notacją wysokości, nie powiedziałbyś „John ma 180 cm”. To po prostu nieprawidłowa forma słów. Mówimy właściwie: „Czas działania algorytmu to theta (lub theta )”. Zwróć uwagę w szczególności, że to narzędzie do mówienia o funkcjach matematycznych, a nie algorytmach. Theta nie oznacza, że czas działania jest czymś; raczej jest to coś, czego możesz użyć do rozmowy o czasie działania.n h h n n Θ
Nawiasem mówiąc , „NL” oznacza niedeterministyczny obszar logiczny klasy złożoności , co nie ma żadnego sensu w pozycji, w jakiej pojawił się w pierwotnym cytacie.
źródło
Wygląda na to, że autor próbuje wyjaśnić notację Big O , ale zmienił jej nazwę na bez żadnego konkretnego powodu i całkowicie zniekształcił tekst.T
Aby dobrze opisać notację Big O (a także little-o i Theta), polecam książkę MIT „ Wprowadzenie do algorytmów” autorstwa prof. Leisersona.
Wydaje się, że jednym ważnym rozróżnieniem jest to, że odnosi się do całkowitej złożoności algorytmu, którą jest zazwyczaj czas , przestrzeń lub jedno i drugie. (np. niektóre algorytmy działają wolniej z większymi zestawami danych; niektóre wymagają więcej miejsca do przechowywania większych danych; a niektóre wymagają więcej czasu i więcej miejsca) .O−notation
Wydaje się, że ta odnosi się tylko do pomiaru czasu algorytmu i nie uwzględnia wymagań dotyczących pamięci.T−notation
źródło