Πίνακας περιεχομένων:
Ορισμός - Τι σημαίνει η πολυπλοκότητα του χρόνου;
Η πολυπλοκότητα του χρόνου είναι μια έννοια στην επιστήμη των υπολογιστών που ασχολείται με την ποσοτικοποίηση του χρόνου που χρειάζεται ένα σύνολο κώδικα ή αλγόριθμο για να επεξεργαστεί ή να λειτουργήσει ως συνάρτηση της ποσότητας εισόδου.
Με άλλα λόγια, η πολυπλοκότητα του χρόνου είναι ουσιαστικά η αποτελεσματικότητα, ή πόσο καιρό μια λειτουργία προγράμματος παίρνει για να επεξεργαστεί μια δεδομένη είσοδο.
Η Techopedia εξηγεί την πολυπλοκότητα του χρόνου
Η πολυπλοκότητα του χρόνου είναι απλώς ένα μέτρο του χρόνου που χρειάζεται για μια λειτουργία ή μια έκφραση για να ολοκληρώσει το έργο της, καθώς και το όνομα της διαδικασίας για να μετρηθεί εκείνη η ώρα. Μπορεί να εφαρμοστεί σε σχεδόν οποιοδήποτε αλγόριθμο ή λειτουργία, αλλά είναι πιο χρήσιμο για αναδρομικές λειτουργίες. Δεν έχει νόημα να μετράτε την πολυπλοκότητα του χρόνου για εφαρμογές όπως η λήψη του ονόματος χρήστη και του κωδικού πρόσβασης από μια βάση δεδομένων για σύγκριση ή απλά η αποθήκευση δεδομένων είτε είναι 20 ms είτε 5 ms. αυτό θα ήταν περισσότερο στη γραμμή του χρόνου πρόσβασης. Δεν έχει καμία σχέση με τη φροντίδα του χρόνου εκτέλεσης, αλλά μάλλον ότι η διαφορά είναι αμελητέα. Ωστόσο, εάν υπάρχει μια επαναλαμβανόμενη λειτουργία που μπορεί να καλείται πολλές φορές, ο καθορισμός και η κατανόηση της πηγής της πολυπλοκότητας του χρόνου μπορεί να συμβάλει στη συντόμευση του συνολικού χρόνου επεξεργασίας από, λόγου χάρη, 600 ms έως 100 ms.
Η πολυπλοκότητα του χρόνου εκφράζεται τυπικά στην "εγγραφή μεγάλης Ο", αλλά υπάρχουν και άλλες σημειώσεις. Αυτή είναι μια μαθηματική αναπαράσταση του ανώτατου ορίου του συντελεστή κλιμάκωσης για έναν αλγόριθμο και γράφεται ως O (Nn), με το "N" να είναι ο αριθμός των εισροών και το "n" να είναι ο αριθμός των επαναλαμβανόμενων εκφράσεων. Για παράδειγμα, έχουμε τον αλγόριθμο:
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; } }
Υπάρχουν πέντε είσοδοι στη συστοιχία "αριθμών" και ο βρόχος "foreach" επαναλαμβάνεται δύο φορές. Επομένως, η εκθετική αύξηση του χρόνου επεξεργασίας συμβαίνει καθώς αυξάνεται ο αριθμός εισόδων και ο αριθμός των βρόχων.