Δομές Δεδομένων - Εργασία 1 [2017-18]

Re: Δομές Δεδομένων - Εργασία 1 [2017-18]

Δημοσίευσηαπό James » 13 Νοέμ 2017, 18:51

michfoti έγραψε:Πως απο εδώ μπορώ να μηδενίσω την προσπάθειά μου?

Αφού έτσι κι αλλιώς τις ολοκλήρωσες όλες, πάτα υποβολή όλων και τέλος. Μετά από 1-2 διαλόγους θα ενεργοποιηθεί το κουμπί "Επαναπροσπάθεια του κουίζ" για να ξεκινήσεις από την αρχή.
Συνημμένα
try-again.png
(Μόνο) James
Άβαταρ μέλους
James
Διαχειριστής
 
Δημοσιεύσεις: 1740
Εγγραφή: 08 Ιαν 2008, 22:29
Φοιτητής ΗΜΜΥ: Όχι

Re: Δομές Δεδομένων - Εργασία 1 [2017-18]

Δημοσίευσηαπό M4N0LIS » 15 Νοέμ 2017, 21:28

Στην άσκηση ThreeSort, τρέχωντας τοπικά το junit test καλώντας μόνο την συνάρτηση isSorted() και τυπώνοντας το σύνολο με την numberOfCompares() παίρνω το διπλάσιο των κανονικών compare. Πχ, στο test 14, όπου ο πίνακας έχει μέγεθος 8 το test μου επιστρέφει numberOfCompares = 16. Είναι σωστό αυτό;
M4N0LIS
Newbie
 
Δημοσιεύσεις: 2
Εγγραφή: 03 Μάιος 2012, 00:33

Re: Δομές Δεδομένων - Εργασία 1 [2017-18]

Δημοσίευσηαπό James » 15 Νοέμ 2017, 21:37

M4N0LIS έγραψε:Στην άσκηση ThreeSort, τρέχωντας τοπικά το junit test καλώντας μόνο την συνάρτηση isSorted() και τυπώνοντας το σύνολο με την numberOfCompares() παίρνω το διπλάσιο των κανονικών compare. Πχ, στο test 14, όπου ο πίνακας έχει μέγεθος 8 το test μου επιστρέφει numberOfCompares = 16. Είναι σωστό αυτό;

Το πλήθος των compares και των swaps δεν είναι εγγυημένο ότι ξεκινάει με 0. Οπότε αν καλέσετε με το καλημέρα την numberOfCompares() μπορεί να μην επιστρέψει 0. Άρα ο σωστός τρόπος για να μετρήσετε το πλήθος των συγκρίσεων είναι να υπολογίσετε τη διαφορά αυτού του πεδίου στην είσοδο και στην έξοδο της συνάρτησης.

Για την λύση της άσκησης μπορείτε να χρησιμοποιήσετε μόνο τις μεθόδους που αναφέρονται στην περιγραφή, οι οποίες είναι η length(), compare() και swap(). Δεν μπορείτε να χρησιμοποιήσετε την isSorted() επειδή αυτή θα "καταναλώσει" n comparisons και n swaps, φέρνοντάς σας απευθείας στο όριο.
(Μόνο) James
Άβαταρ μέλους
James
Διαχειριστής
 
Δημοσιεύσεις: 1740
Εγγραφή: 08 Ιαν 2008, 22:29
Φοιτητής ΗΜΜΥ: Όχι

Re: Δομές Δεδομένων - Εργασία 1 [2017-18]

Δημοσίευσηαπό M4N0LIS » 15 Νοέμ 2017, 21:42

James έγραψε:Το πλήθος των compares και των swaps δεν είναι εγγυημένο ότι ξεκινάει με 0.


Γιατι γίνεται αυτό; Στην λύση μου, παρόλο που γίνεται η ταξινόμηση τα test αποτυγχάνουν λόγω "too many comparisons".
M4N0LIS
Newbie
 
Δημοσιεύσεις: 2
Εγγραφή: 03 Μάιος 2012, 00:33

Re: Δομές Δεδομένων - Εργασία 1 [2017-18]

Δημοσίευσηαπό James » 15 Νοέμ 2017, 22:08

M4N0LIS έγραψε:
James έγραψε:Γιατι γίνεται αυτό; Στην λύση μου, παρόλο που γίνεται η ταξινόμηση τα test αποτυγχάνουν λόγω "too many comparisons".

Απλά είναι ένας περιορισμός του συστήματος αυτόματης διόρθωσης. Όταν γίνεται ο έλεγχος αφαιρείται η τιμή που είχε το πεδίο αυτό στην αρχή και μετά βαθμολογείται. Μη στέκεστε στην τιμή αυτού του πεδίου. Έτσι κι αλλιώς όπως είπαμε, 3 συναρτήσεις μόνο μπορείτε (κανονικά) να χρησιμοποιήσετε και η numberOfCompares() δεν είναι μία από αυτές (παρότι δεν κάνει κακό).

Το σφάλμα αυτό σημαίνει ότι κάνεις περισσότερα comparisons από όσα χρειάζονται. Αν πιστεύεις ότι ο αλγόριθμος που σκέφτηκες είναι λογικά σωστός και τρέχει σε γραμμικό χρόνο, προσπάθησε να μελετήσεις προσεκτικά τον κώδικα που ανέπτυξες χρησιμοποιώντας debugging, απλές println ή μετρητές. Θα πρέπει να καλείται η συνάρτηση compare το πολύ n φορές.

Αν πιστεύεις ότι υπάρχει λάθος στην άσκηση και ο κώδικάς σου τρέχει σε γραμμικό χρόνο αλλά αποτυγχάνουν τα test, στείλε μου σε email (gstamat) τον κώδικά σου.
(Μόνο) James
Άβαταρ μέλους
James
Διαχειριστής
 
Δημοσιεύσεις: 1740
Εγγραφή: 08 Ιαν 2008, 22:29
Φοιτητής ΗΜΜΥ: Όχι

Re: Δομές Δεδομένων - Εργασία 1 [2017-18]

Δημοσίευσηαπό sebkallint » 16 Νοέμ 2017, 18:44

Στο 1ο υποερωτημα ο έλεγχος που πρέπει να γίνεται για τον αριθμό του οποίου θα υπολογίσουμε στην συνέχεια το παραγοντικό να τον κάνουμε απλα με μια if ή με do while;
sebkallint
Newbie
 
Δημοσιεύσεις: 2
Εγγραφή: 20 Ιαν 2016, 14:06

Re: Δομές Δεδομένων - Εργασία 1 [2017-18]

Δημοσίευσηαπό James » 16 Νοέμ 2017, 21:07

sebkallint έγραψε:Στο 1ο υποερωτημα ο έλεγχος που πρέπει να γίνεται για τον αριθμό του οποίου θα υπολογίσουμε στην συνέχεια το παραγοντικό να τον κάνουμε απλα με μια if ή με do while;

Στο 1ο υποερώτημα δεν χρειάζεται να κάνετε κάποιον έλεγχο. Ποιος είναι ο αριθμός του οποίου θα υπολογίζετε στην συνέχεια το παραγοντικό;
(Μόνο) James
Άβαταρ μέλους
James
Διαχειριστής
 
Δημοσιεύσεις: 1740
Εγγραφή: 08 Ιαν 2008, 22:29
Φοιτητής ΗΜΜΥ: Όχι

Re: Δομές Δεδομένων - Εργασία 1 [2017-18]

Δημοσίευσηαπό sebkallint » 16 Νοέμ 2017, 23:02

Στο 1ο υποερώτημα δεν χρειάζεται να κάνετε κάποιον έλεγχο. Ποιος είναι ο αριθμός του οποίου θα υπολογίζετε στην συνέχεια το παραγοντικό;[/quote]
Θα βαλω εγω εναν δικο μου αριθμο; Δεν θα το ζηταει απο το χρηστη;
sebkallint
Newbie
 
Δημοσιεύσεις: 2
Εγγραφή: 20 Ιαν 2016, 14:06

Re: Δομές Δεδομένων - Εργασία 1 [2017-18]

Δημοσίευσηαπό James » 17 Νοέμ 2017, 00:32

sebkallint έγραψε:Θα βαλω εγω εναν δικο μου αριθμο; Δεν θα το ζηταει απο το χρηστη;

Στο πρώτο υποερώτημα θα πρέπει να υλοποιήσετε κώδικα που θα επιστρέφει το παραγοντικό του αριθμού x. Θα διαβάσετε τον αριθμό x, θα κάνετε τις επαναλήψεις που χρειάζονται και θα επιστρέψετε το παραγοντικό.

viewtopic.php?f=198&t=8922&start=15#p37827
(Μόνο) James
Άβαταρ μέλους
James
Διαχειριστής
 
Δημοσιεύσεις: 1740
Εγγραφή: 08 Ιαν 2008, 22:29
Φοιτητής ΗΜΜΥ: Όχι

Re: Δομές Δεδομένων - Εργασία 1 [2017-18]

Δημοσίευσηαπό tsakisx » 17 Νοέμ 2017, 21:27

Στη ThreeSort είναι δυνατό να γίνει με bubbleSort ή πρεπει να χρησιμοποιήσουμε άλλο αλγόριθμο ? επειδή μου βγάζει Too many comparison αλλα και swaps
tsakisx
Newbie
 
Δημοσιεύσεις: 16
Εγγραφή: 12 Ιαν 2016, 21:22

Re: Δομές Δεδομένων - Εργασία 1 [2017-18]

Δημοσίευσηαπό James » 17 Νοέμ 2017, 21:36

tsakisx έγραψε:Στη ThreeSort είναι δυνατό να γίνει με bubbleSort ή πρεπει να χρησιμοποιήσουμε άλλο αλγόριθμο ? επειδή μου βγάζει Too many comparison αλλα και swaps

Είναι γνωστό από τη θεωρία ότι ο bubble sort έχει πολυπλοκότητα χειρότερης περίπτωσης $\mathcal{O}(n^2)$ και άρα δεν καλύπτει τις απαιτήσεις του ερωτήματος. Θα πρέπει να σκεφτείτε ή να βρείτε έναν αλγόριθμο που στη χειρότερη περίπτωση να κάνει $n$ συγκρίσεις.
(Μόνο) James
Άβαταρ μέλους
James
Διαχειριστής
 
Δημοσιεύσεις: 1740
Εγγραφή: 08 Ιαν 2008, 22:29
Φοιτητής ΗΜΜΥ: Όχι

Re: Δομές Δεδομένων - Εργασία 1 [2017-18]

Δημοσίευσηαπό Aedes Sollicitans » 18 Νοέμ 2017, 21:22

Στο 6ο υποερώτημα (ThreeSort) τι ακριβώς κάνει η τελευταία εντολή
Κώδικας: Επιλογή όλων
throw new UnsupportedOperationException();
που δίνεται συμπληρωμένη; Εμείς θα την πειράξουμε ή όχι; Αντικαθιστά την return;
Άβαταρ μέλους
Aedes Sollicitans
Jr. Member
 
Δημοσιεύσεις: 69
Εγγραφή: 11 Οκτ 2015, 16:51
Φοιτητής ΗΜΜΥ: Ναι

Re: Δομές Δεδομένων - Εργασία 1 [2017-18]

Δημοσίευσηαπό James » 18 Νοέμ 2017, 22:30

Aedes Sollicitans έγραψε:Στο 6ο υποερώτημα (ThreeSort) τι ακριβώς κάνει η τελευταία εντολή
Κώδικας: Επιλογή όλων
throw new UnsupportedOperationException();
που δίνεται συμπληρωμένη; Εμείς θα την πειράξουμε ή όχι; Αντικαθιστά την return;

Θα σβήσετε τη γραμμή

Κώδικας: Επιλογή όλων
throw new UnsupportedOperationException();

και δεν θα βάλετε κάποια return.

Η γραμμή αυτή υπάρχει απλά και μόνο λόγω περιορισμού του συστήματος αυτόματης διόρθωσης.
(Μόνο) James
Άβαταρ μέλους
James
Διαχειριστής
 
Δημοσιεύσεις: 1740
Εγγραφή: 08 Ιαν 2008, 22:29
Φοιτητής ΗΜΜΥ: Όχι

Προηγούμενη

Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 30 επισκέπτες