Άθροισμα τέλειων τετραγώνων. Τι χρονική και τι χωρική πολυπλοκότητα έχει η πρώτη εκδοχή;
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)