Γεια σας και από εμένα!
Δράττομαι και εγώ της ευκαιρίας να ρωτήσω για κάτι που βασανίζει το μυαλό μου εδώ και μήνες αλλά δεν είχα το χρόνο που ήθελα για να ασχοληθώ σοβαρά μαζί του.
Το background είναι πως είμαι φοιτητής πολυτεχειακής σχολής υπολογιστών, σε μικρό έτος.
Ως ώρας ξέρω C++ και Java ως προς τα βασικά τους (την C ηθελημένα και σκόπιμα την παραβλέπουμε…).
Ας υποθέσουμε ότι έχω μία πειραματική λίστα δεδομένων η οποία περιέχει αρκετά εκατομμύρια εγγραφές και κάθε εγγραφή «κοστίζει» σε μνήμη 10 - 20 bytes.
Το αρχείο στο οποίο περιέχονται οι εγγραφές είναι είτε text είτε binary.
Θέλω να ταξινομήσω αυτή την πειραματική λίστα δεδομένων, εν προκειμένω να δημιουργήσω ένα άλλο αρχείο στο οποίο να περιέχονται οι εγγραφές μου και «δίπλα» από κάθε εγγραφή να βρίσκεται και ο αριθμός των φορών που εμφανίζεται η εγγραφή στο αρχικό αρχείο.
Δηλαδή στο καινούριο αρχείο να μην περιέχονται διπλογραμμένες τριπλογραμμένες τετραπλογραμμένες και ουτωκαθεξής εγγραφές αλλά αν κάποια εγγραφή βρίσκεται “ν” φορές στο αρχικό μου αρχείο,
τότε στο καινούριο αρχείο να βρίσκεται αυτή η εγγραφή και «δίπλα» της ο αριθμός “ν” των φορών που εμφανίστηκε στο πρώτο αρχείο.
Προσπάθησα να το υλοποιήσω και το υλοποίησα στη C, με συνδεδεμένη λίστα αλλά…
Το πρόγραμμα λόγω της μεγάλης καταχώρησης μνήμης του μεγάλου αριθμού εγγραφών με την malloc δεν τελειώνει ούτε στον αιώνα τον άπαντα…J (εξού και ο λόγος που δεν θέλω να λέω ότι γνωρίζω C… J)
Ρώτησα κάποιον πιο «αρμόδιο» από εμένα και μου είπε ότι το πρόβλημά μου θα λυθεί αν γράψω ένα script σε SQL…
Εγώ έχω όλη την καλή θέληση να κάτσω να μάθω όλα τα κουτσομπολιά που έχουν γραφτεί για την δεσποινίδα SQL και για την οικογένεια της, αλλά δεν ξέρω αν αξίζει…
Και με το «αν αξίζει» εννοώ μήπως από «την φύση της» (αριστοτελικός όρος),
μία λίστα δεδομένων με αρκετά εκατομμύρια εγγραφές απαιτεί μία πολύ ισχυρή υπολογιστική ισχύ hardware για να υλοποιηθεί η ταξινόμησή της, οπότε άδικα θα εντρυφήσω στην SQL και την παρέα της????????
Από βιβλία δεν υπάρχει πρόβλημα η βιβλιοθήκη της σχολής μπορεί να θεωρηθεί όλη δική μου J
Και συγκεκριμένα βρήκα ως ενδιαφέροντες του τίτλους:
Database Application Developer’s Guide _ Borland Software Corporation
Και
Database Programming with JDBC and Java, Second Edition _ George Reese _ O'Reilly.
(αλήθεια αυτή η JDBC ποια είναι? J)
Λοιπόν, είναι μήπως θέμα ισχύος hardware, και όχι θέμα αλγορίθμου ή το αντίθετο??????
Και είναι θέμα software σε ποια γλώσσα και με ποιο σκεπτικό πρέπει να υλοποιήσω την ταξινόμηση?????????
Σας ευχαριστώ, εκ των προτέρων.