8 Φεβρουαρίου 2022
Συνάρτηση που ταξινομεί λογικές τιμές
Δραστηριότητα 5 - αλγόριθμοι
Να γράψετε μια συνάρτηση σε Python η οποία θα δέχεται μια λίστα με λογικές τιμές True/False και θα διαχωρίζει τις τιμές αυτές, τοποθετώντας τα True πριν από τα False.
20 Ιανουαρίου 2021
Βελτιωμένος αλγόριθμος ταξινόμησης ευθείας ανταλλαγής (bubble sort) - Δημιουργία τυχαίας λίστας διαφορετικών ακέραιων αριθμών (random - randint)
Ο αλγόριθμος ταξινόμησης ευθείας ανταλλαγής (bubble sort) είναι αρκετά αποδοτικός αφού δεν επαναλαμβάνει συγκρίσεις μεταξύ ήδη ταξινομημένων στοιχείων.
Όμως, στην κανονική του μορφή, κάνει συγκεκριμένα περάσματα (n-1, όπου n το μήκος της λίστας προς ταξινόμηση), ακόμα κι όταν η λίστα είναι ήδη ταξινομημένη.
Αυτό μπορεί να διορθωθεί ελέγχοντας αν στο τέλος ενός περάσματος από τα n-1, προκύψουν μηδενικές ανταλλαγές.
Στο αρχείο python που παρατίθεται, έχουμε την απλή υλοποίηση και την βελτιωμένη. Η λίστα των αριθμών παράγεται με την χρήση της βιβλιοθήκης random και της συνάρτησης randint, ώστε να έχουμε μια τυχαία και όχι προσχεδιασμένη λίστα.
Στην εικόνα που ακολουθεί φαίνεται ο κώδικας του προγράμματος και η εκτέλεση του, όπου φαίνεται ξακάθαρα ότι σε μία τυχαία αταξινόμητη λίστα στην απλή υλοποίηση του bubble sort κάνουμε δύο περάσματα επιπλέον σε σχέση με την βελτιωμένη υλοποίηση. Σε μία λίστα 10 αριθμών η διαφορά φαίνεται μικρή, αλλά σε πολύ μεγάλες λίστες υπάρχει μεγάλη εξοικονόμηση επαναλήψεων.
10 Ιουνίου 2020
Παράδειγμα με παράλληλη ταξινόμηση
Διπλή παράλληλη ταξινόμηση, πρώτα σε αύξουσα σειρά και μετά σε φθίνουσα σειρά ώστε τα γράμματα που έχουν ίδιο αριθμό να είναι ταξινομημένα αλφαβητικά. Π.χ. 'b','f' που έχουν 85 και 'g', 'h' που έχουν 79
Παράδειγμα
Πριν την ταξινόμηση
['c', 'f', 'a', 'h', 'd', 'b', 'e', 'i', 'g']
[89, 85, 92, 79, 83, 85, 95, 82, 79]
Μετά την ταξινόμηση
['e', 'a', 'c', 'b', 'f', 'd', 'i', 'g', 'h']
[95, 92, 89, 85, 85, 83, 82, 79, 79]
21 Ιανουαρίου 2018
Παράλληλη ταξινόμηση 2 λιστών με τον αλγόριθμο ευθείας ανταλλαγής (bubble sort)
Έστω 2 λίστες που συσχετίζονται:



