Χμμ νομίζω ότι θα εξηγήσω καλύτερα τι πιστεύω για το uniform cost model χρησιμοποιώντας το για να (ξανα)απαντήσω σε αυτό το μήνυμα του Γιώργου:
Πχ ο αλγόριθμος
Διάβασε ν
Για ι από 1 μέχρι ν
Γράψε ι
Τέλος_επανάληψης
Έχει εκθετική πολυπλοκότητα. Το μέγεθος εισόδου είναι το πλήθος των ψηφίων δηλαδή log(ν). Έτσι έχω f(log(ν))=ν που είναι εκθετική (αν θέλεις όπου log(ν) το x θα βγει το εκθετικό).
Ισχυρίζεσαι ότι το γράψιμο ν στοιχείων έχει εκθετική πολυπλοκότητα.
Εγώ ισχυρίζομαι ότι έχει γραμμική (στο uniform cost model που θεωρώ ότι είναι και αυτό που χρησιμοποιούμε στην ΑΕΠΠ).
Στο uniform cost model, το πόσα bit είναι το "ν" δεν μας ενδιαφέρει καθόλου. Θεωρούμε ότι οι αριθμοί μας εκφράζονται από έναν σταθερό πλήθος ψηφίων "c", π.χ. c=32 στους 32-bit επεξεργαστές.
Το σημείο κλειδί είναι ότι
το c δεν είναι ίσο με log(ν) όπως αναφέρεις, είναι ανεξάρτητη σταθερά από το ν.
Τους αριθμούς μας θα τους χρειαστούμε για να βάλουμε κι άλλα πράγματα μέσα (π.χ. ένα sum <- sum+i), δεν θα βάλουμε μόνο το ν σε αυτούς.
Στην Διάβασε ν, σε κάθε περίπτωση θα διαβάσουμε c bits, όχι log(ν) bits.
Έτσι για π.χ. c=32 και ν=10, τα δυαδικά ψηφία της εισόδου μας δεν θα είναι "1010", αλλά "00000000 00000000 00000000 00001010", ένας ολόκληρος 32bit αριθμός.
Οπότε τελικά το μέγεθος της εισόδου σε bit είναι "c", σε ακεραίους είναι "ένας", και η πολυπλοκότητα του παραπάνω αλγορίθμου δεν μπορεί να μετρηθεί με βάση το μέγεθος της εισόδου παρά μόνο με βάση την τιμή "ν" της εισόδου όπου και είναι γραμμική.
Παρεμπιπτόντως Γιώργο, αν ήθελες να υλοποιήσεις την εντολή "Διάβασε" με "ν" bits και όχι "c" bits εισόδου, θα χρειαζόσουν επανάληψη και κόστος Ο(log(ν)), δεν θα μπορούσε να υλοποιηθεί σε Ο(1). Προφανώς λοιπόν χωρίς Ο(1) δεν θα χρησιμοποιούσες uniform cost model.