Η ανάλυση αλγορίθμων είναι ένα πεδίο της επιστήμης των υπολογιστών που είναι αφιερωμένο στην κατανόηση της πολυπλοκότητας των αλγορίθμων. Οι αλγόριθμοι ορίζονται γενικά ως διεργασίες που εκτελούν μια σειρά πράξεων μέχρι το τέλος. Οι αλγόριθμοι μπορούν να εκφραστούν με πολλούς τρόπους, σε διαγράμματα ροής, σε φυσική γλώσσα και σε γλώσσες προγραμματισμού υπολογιστών. Οι αλγόριθμοι χρησιμοποιούνται στα μαθηματικά, τους υπολογιστές και τη γλωσσολογία, αλλά η πιο κοινή χρήση είναι στους υπολογιστές για την εκτέλεση υπολογισμών ή την επεξεργασία δεδομένων. Η ανάλυση αλγορίθμων ασχολείται με αλγόριθμους γραμμένους σε γλώσσες προγραμματισμού υπολογιστών, οι οποίοι βασίζονται στον μαθηματικό φορμαλισμό
Ένας αλγόριθμος είναι ουσιαστικά ένα σύνολο εντολών για έναν υπολογιστή για να εκτελέσει έναν υπολογισμό με συγκεκριμένο τρόπο. Για παράδειγμα, ένας υπολογιστής θα χρησιμοποιούσε έναν αλγόριθμο για τον υπολογισμό του μισθού ενός υπαλλήλου. Για να μπορέσει ο υπολογιστής να εκτελέσει τους υπολογισμούς, χρειάζεται κατάλληλα δεδομένα που εισάγονται στο σύστημα, όπως ο μισθός του υπαλλήλου και ο αριθμός των ωρών εργασίας.
Περισσότεροι από ένας αλγόριθμοι ενδέχεται να λειτουργούν για την εκτέλεση της ίδιας λειτουργίας, αλλά ορισμένοι αλγόριθμοι χρησιμοποιούν περισσότερη μνήμη και χρειάζονται περισσότερο χρόνο για να εκτελεστούν από άλλους. Επίσης, πώς γνωρίζουμε πόσο καλά λειτουργούν οι αλγόριθμοι γενικά, δεδομένων των διαφορών μεταξύ των υπολογιστών και των εισροών δεδομένων; Εδώ μπαίνει η ανάλυση αλγορίθμων.
Ένας τρόπος για να δοκιμάσετε έναν αλγόριθμο είναι να εκτελέσετε ένα πρόγραμμα υπολογιστή και να δείτε πόσο καλά λειτουργεί. Το πρόβλημα με αυτήν την προσέγγιση είναι ότι μας λέει μόνο πόσο καλά λειτουργεί ο αλγόριθμος με έναν συγκεκριμένο υπολογιστή και ένα σύνολο εισόδων. Ο σκοπός της ανάλυσης αλγορίθμων είναι να ελέγξει και στη συνέχεια να εξαγάγει συμπεράσματα σχετικά με το πόσο καλά λειτουργεί ένας συγκεκριμένος αλγόριθμος γενικά. Αυτό θα ήταν πολύ δύσκολο και χρονοβόρο να γίνει σε μεμονωμένους υπολογιστές, έτσι οι ερευνητές επινοούν μοντέλα λειτουργίας του υπολογιστή για να δοκιμάσουν αλγόριθμους.
Γενικά, η ανάλυση αλγορίθμων ασχολείται περισσότερο με την εύρεση του χρόνου που χρειάζεται ένα πρόγραμμα για να τρέξει και πόσο χώρο αποθήκευσης μνήμης χρειάζεται για να εκτελέσει το πρόγραμμα. Συγκεκριμένα, οι επιστήμονες υπολογιστών χρησιμοποιούν ανάλυση αλγορίθμων για να προσδιορίσουν πώς τα δεδομένα που αποδίδονται σε ένα πρόγραμμα επηρεάζουν τον συνολικό χρόνο λειτουργίας του, πόσο χώρο μνήμης χρειάζεται ο υπολογιστής για τα δεδομένα του προγράμματος, πόσο χώρο καταλαμβάνει ο κώδικας του προγράμματος στον υπολογιστή, εάν ένας αλγόριθμος παράγει σωστά υπολογισμούς, πόσο περίπλοκο είναι ένα πρόγραμμα και πόσο καλά αντιμετωπίζει απροσδόκητα αποτελέσματα.