Spisu treści:
Definicja - Co oznacza złożoność czasu?
Złożoność czasu jest pojęciem w informatyce, które zajmuje się kwantyfikacją ilości czasu potrzebnego zestawowi kodu lub algorytmu na przetworzenie lub uruchomienie w zależności od ilości danych wejściowych.
Innymi słowy, złożoność czasu jest zasadniczo wydajnością lub czasem, w jakim funkcja programu przetwarza dane wejściowe.
Techopedia wyjaśnia złożoność czasu
Złożoność czasu jest po prostu miarą czasu potrzebnego na wykonanie funkcji lub wyrażenia, a także nazwą procesu mierzenia tego czasu. Można go zastosować do prawie dowolnego algorytmu lub funkcji, ale jest bardziej przydatny w przypadku funkcji rekurencyjnych. Nie ma sensu mierzyć złożoności czasu w aplikacjach, takich jak pobieranie nazwy użytkownika i hasła z bazy danych w celu porównania lub po prostu zapisywanie danych bez względu na to, czy jest to 20 ms, czy 5 ms; byłoby to bardziej zgodne z czasem dostępu. Nie ma to nic wspólnego z dbałością o czas wykonania, ale raczej, że różnica jest znikoma. Jeśli jednak istnieje funkcja rekurencyjna, która może być wywoływana wiele razy, określenie i zrozumienie źródła jej złożoności czasowej może pomóc skrócić całkowity czas przetwarzania z, powiedzmy, 600 ms do 100 ms.
Złożoność czasowa jest zazwyczaj wyrażana w „dużej notacji O”, ale są też inne notacje. Jest to matematyczna reprezentacja górnej granicy współczynnika skalowania dla algorytmu i jest zapisana jako O (Nn), gdzie „N” oznacza liczbę danych wejściowych, a „n” oznacza liczbę wyrażeń zapętlonych. Na przykład mamy algorytm:
numbers = {5, 6, 10, 11, 2}; foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2) {
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
W tablicy „liczb” znajduje się pięć danych wejściowych, a pętla „foreach” powtarza się dwukrotnie. Dlatego wykładniczy wzrost czasu przetwarzania występuje wraz ze wzrostem liczby wejść i liczby pętli.
