Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Α21.6 · Πολυπλοκότητα του μήκους λίστας

Διάλεξη 21, διαφάνειες 19–20 · Δυσκολία ★★☆ · short-answer · Κεφάλαια: 21

Δίνονται δύο υλοποιήσεις της length:

int length(List list) {
  int counter = 0;
  while(list) {
    counter++;
    list = list->next;
  }
  return counter;
}
int length(List list) {
  if (!list) return 0;
  return 1 + length(list->next);
}

Ποια η πολυπλοκότητα των παραπάνω ως προς χρόνο και χώρο;

Υπόδειξη

Για τον χρόνο, μετρήστε πόσες φορές επισκέπτεται κάθε εκδοχή κάθε κόμβο. Για τον χώρο, σκεφτείτε πόσες κλήσεις της συνάρτησης είναι ταυτόχρονα ενεργές στη στοίβα όταν φτάνουμε στο τέλος της λίστας.

Αριθμός στον οδηγό: Α21.6 (στο κεφάλαιο) · Μόνιμο αναγνωριστικό: slides-lec21-length-complexity · Σύνδεσμος: https://progintro.github.io/study/questions/slides/slides-lec21-length-complexity.html · Markdown (GitHub)