Ας το σπάσουμε:
* Πολυπλοκότητα χώρου: Αυτό αναφέρεται στην ποσότητα μνήμης που πρέπει να τρέξει ένας αλγόριθμος. Συχνά εκφράζεται με τη χρήση του Big O Notation, η οποία περιγράφει τον ρυθμό ανάπτυξης της χρήσης του χώρου καθώς αυξάνεται το μέγεθος της εισόδου.
* Επιπλέον χώρος: Αυτό αναφέρεται στο χώρο που χρησιμοποιείται * πέρα από * στον χώρο που λαμβάνεται από την ίδια την είσοδο. Για παράδειγμα, αν ταξινομείτε μια σειρά μεγέθους `n`, ο ίδιος ο πίνακας παίρνει το χώρο` n`. Ο επιπλέον χώρος θα ήταν οποιαδήποτε πρόσθετη μνήμη που χρησιμοποιείται για προσωρινές μεταβλητές, βοηθητικές συστοιχίες, επαναλαμβανόμενες στοίβες κλπ., Που δεν είναι * μέρος της αρχικής εισόδου.
* o (1):σταθερή ώρα: O (1) Σημαίνει τη σταθερή πολυπλοκότητα του χρόνου. Στην περίπτωση του χώρου, αυτό σημαίνει ότι ο αλγόριθμος χρησιμοποιεί σταθερό χώρο ανεξάρτητα από το μέγεθος της εισόδου. Αυτό το σταθερό ποσό δεν αλλάζει, ακόμη και αν επεξεργαστείτε ένα εκατομμύριο στοιχεία ή ένα δισεκατομμύριο αντικείμενα.
Παραδείγματα:
* Αλγόριθμοι επί τόπου: Πολλοί αλγόριθμοι που λειτουργούν απευθείας στον πίνακα εισόδου χωρίς να δημιουργούν σημαντικές βοηθητικές δομές δεδομένων έχουν σταθερή επιπλέον πολυπλοκότητα του χώρου. Για παράδειγμα, ορισμένοι αλγόριθμοι ταξινόμησης όπως ταξινόμηση ή επιλογή επιλογής (όταν εφαρμόζονται προσεκτικά) χρησιμοποιούν μόνο μερικές επιπλέον μεταβλητές για προσωρινές συγκρίσεις και ανταλλαγές, ανεξάρτητα από το μέγεθος της συστοιχίας εισόδου.
* Επαναληπτικοί αλγόριθμοι με σταθερό αριθμό μεταβλητών: Ένας αλγόριθμος που χρησιμοποιεί έναν σταθερό αριθμό μεταβλητών (π.χ. μετρητές, δείκτες βρόχου) για την επεξεργασία της εισόδου θα έχει γενικά O (1) επιπλέον πολυπλοκότητα χώρου.
μη παραδείγματα:
* Αλγόριθμοι που χρησιμοποιούν βοηθητικές συστοιχίες: Εάν ένας αλγόριθμος δημιουργεί μια νέα συστοιχία του οποίου το μέγεθος είναι ανάλογο με το μέγεθος εισόδου (π.χ. δημιουργώντας ένα αντίγραφο του πίνακα εισόδου), δεν έχει σταθερό επιπλέον χώρο. Η πολυπλοκότητα του χώρου θα ήταν O (n).
* Αναδρομικοί αλγόριθμοι με βαθιά αναδρομή: Οι αναδρομικοί αλγόριθμοι μπορούν να καταναλώσουν σημαντικό χώρο στη στοίβα κλήσεων εάν το βάθος επανάληψης είναι ανάλογο με το μέγεθος της εισόδου. Αυτοί οι αλγόριθμοι γενικά δεν έχουν σταθερό επιπλέον χώρο.
* Αλγόριθμοι χρησιμοποιώντας πίνακες κατακερματισμού: Ενώ οι πίνακες κατακερματισμού είναι συχνά πολύ αποτελεσματικοί, η χρήση του χώρου εξαρτάται από τον αριθμό των αντικειμένων που αποθηκεύουν, πράγμα που σημαίνει ότι συνήθως δεν έχουν επιπλέον χώρο O (1), εκτός εάν το μέγεθος του πίνακα κατακερματισμού περιορίζεται από μια σταθερά.
Εν ολίγοις: Ο σταθερός επιπλέον χώρος σημαίνει ότι η χρήση της μνήμης του αλγορίθμου σας παραμένει το ίδιο ανεξάρτητα από το πόσο μεγάλο παίρνει το πρόβλημα. Είναι μια επιθυμητή ιδιότητα επειδή διατηρεί τη χρήση της μνήμης προβλέψιμη και αποτρέπει προβλήματα υπερχείλισης μνήμης, ειδικά όταν ασχολούνται με μεγάλα σύνολα δεδομένων.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα