Jak dotąd, tak dobrze, rozmawialiśmy o jednowymiarowych tablicach i mniej strukturach danych,
mówiliśmy o lingwistach i lingwistach.
W tym wykładzie chciałbym pokazać porównanie czasu działania lingwistów i tablic.
Wiem, że w Pythonie zaokrąglone nawiasy nazywane są strukturą danych i nie są tym samym, co
tablice jednowymiarowe w informatyce.
Ale w każdym razie zamierzamy założyć, że jest to tablica jednowymiarowa w zasadzie pod obiektem uchwytu
Pythona w masce, a odniesienia do obiektu są przechowywane w pamięci tuż obok siebie, wskazując
na różne lokalizacje.
Ale tak czy inaczej, zwykle to właśnie nazywamy tablicą w Pythonie.
OK, spróbujmy więc porównać czas pracy lingwistów, jeśli chodzi o wstawianie elementów na początek
struktury danych.
Jest to więc implementacja prostej listy linków, w której mamy odniesienie do węzła głównego
i możemy wstawić dany element na początek struktury danych.
Musimy więc po prostu manipulować węzłem głównym i mieć wskaźniki związane z węzłem, jak widać.
Mamy więc odniesienie do następnego węzła w każdym węźle.
Zobaczmy więc porównanie czasu działania, aby móc śledzić czas, jaki musimy zaimportować, i zasadniczo
możemy uzyskać rzeczywisty czas.
Dlatego właśnie nazwa zmiennej jest teraz, ponieważ przy pomocy funkcji
czasu funkcja czasu zwróci wartość zmiennoprzecinkową, która reprezentuje bieżący czas w sekundach.
Jest absolutnie kluczowe, że we wszystkich naszych językach programowania mamy zwykle do czynienia z
milisekundami.
Czyli na przykład w Javie, ale tutaj w Pythonie mamy do czynienia z sekundami.
OK, więc co będziemy robić?
Zamierzamy wstawić 500000 pozycji na początek długiej listy i mierzyć czas.
Dlatego po wstawieniu 500000 pozycji, wypisujemy, że wstawiamy pozycje do długiej listy i
wypisujemy format ciągu znaków aktualnego czasu minus zmienna now.
Więc w zasadzie to mierzymy.
Ile czasu potrzeba, aby Python wstawił pięćset tysięcy elementów na początek długiej listy?
I oczywiście musimy zrobić to samo dla struktury danych listy lub tablicy.
Tworzymy więc pustą strukturę danych i wstawiamy pięćset tysięcy elementów na początek struktury
danych.
I oczywiście musimy śledzić czas.
Więc jeśli uruchomimy algorytm, nie zamierzam ponownie uruchamiać go ponownie, ponieważ zakończenie wykonywania
zajmuje około minuty.
Jak widać, właśnie dlatego lubimy legalistów, ponieważ manipulując pierwszą pozycją, jest to
niezwykle szybkie.
Każdy z nich zajmuje około pół sekundy, aby wstawić pięćset tysięcy elementów, podczas gdy z drugiej
strony tablica lub struktura danych listy, taka jak ta, zajmuje 52 sekundy, aby wstawić 500000 elementów na początku, możesz zadać
pytanie, dlaczego?
O tym właśnie mówiliśmy w części teoretycznej, że Python musi obsługiwać tak zwane
HOLAS.
Musi więc przesuwać wszystkie elementy w każdym wstawieniu.
Dlatego właśnie wstawienie pięciuset tysięcy elementów w strukturę danych tablicy zajmuje wykładniczo więcej czasu
niż operowanie długą listą.
Wydaje mi się więc, że zrozumienie struktur danych jest niezwykle istotne, aby móc zdecydować, jakiej
struktury danych użyć w danej aplikacji.
Dlatego właśnie lingwiści są znacznie szybsi podczas manipulowania pierwszymi elementami struktury danych.
Dzięki za oglądanie.