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

Α15.13 · Άθροισμα τέλειων τετραγώνων: δύο εκδοχές

Διάλεξη 15, διαφάνεια 33 · Δυσκολία ★★☆ · short-answer · Κεφάλαια: 15

Άθροισμα τέλειων τετραγώνων. Τι χρονική και τι χωρική πολυπλοκότητα έχει η πρώτη εκδοχή;

int isPerfectSquare(int num) {
  int root = sqrt(num);
  return root * root == num;
}
int low = atoi(argv[1]);
int high = atoi(argv[2]);
int i, sum = 0;
for(i = low ; i <= high ; i++) {
  if (isPerfectSquare(i))
    sum += i;
}

Και η δεύτερη;

int low = atoi(argv[1]);
int high = atoi(argv[2]);
int i, sum = 0;
for(i = sqrt(low) ; i <= sqrt(high) ; i++)
  sum += i*i ;

Υπόδειξη

Και στις δύο, μετρήστε τις επαναλήψεις συναρτήσει του μεγέθους του διαστήματος (θεωρήστε την sqrt ένα βήμα). Η δεύτερη διατρέχει άλλες τιμές από την πρώτη: ποιες; Δοκιμάστε επίσης τη δεύτερη με low = 5, high = 20 και συγκρίνετε με την πρώτη.

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