Θέμα Β1, 2018, Ιούνιου, Hμερήσια και Eσπερινά

ΘΕΜΑ Β1
Το παρακάτω τμήμα αλγορίθμου αποτελεί μια παραλλαγή της ταξινόμησης φυσαλίδας, η οποία όμως σταματάει τις επαναλήψεις μόλις διαπιστώσει ότι ο πίνακας έχει ταξινομηθεί ως εξής:
Μετά την ολοκλήρωση του εσωτερικού βρόχου, ελέγχει εάν έγιναν αντιμεταθέσεις στοιχείων και αν δεν έγιναν τότε ο αλγόριθμος τερματίζεται. Το τμήμα αλγορίθμου που δίνεται περιέχει κενά που έχουν αριθμηθεί.

i  ...(1)... 
Αρχή_επανάληψης 
stop  ΑΛΗΘΗΣ 
Για j από Ν μέχρι i με_βήμα -1 
    Αν table[j-1] > table[j] τότε 
       Αντιμετάθεσε table[j-1],table[j]  
       stop  ...(2)... 
    Τέλος_αν 
Τέλος_επανάληψης 
...(3)... 
Μέχρις_ότου i ...(4)... N ή stop= ...(5)...</code class="language-javascript">

Να γράψετε στο τετράδιό σας τους αριθμούς των κενών και δίπλα από κάθε αριθμό ό,τι πρέπει να συμπληρωθεί ώστε να επιτελείται η λειτουργία που περιγράφεται.
Μονάδες 10

ΔΤ2, Κεφάλαιο 3, Τετράδιο Εργασιών, Έξυπνη φυσαλίδα

ΕΚΦΩΝΗΣΗ:

Ο αλγόριθμος της φυσαλίδας όπως διατυπώθηκε στην παράγραφο 3.7 έχει το μειονέκτημα ότι δεν είναι αρκετά “έξυπνος” ώστε να διαπιστώνει στην αρχή ή στο μέσο της διαδικασίας αν ο πίνακας είναι ταξινομημένος. Να σχεδιασθεί μία παραλλαγή του αλγορίθμου αυτού που να σταματά όταν διαπιστωθεί ότι τα στοιχεία του πίνακα είναι ήδη ταξινομημένα. Υπόδειξη: Να χρησιμοποιήσετε μία βοηθητική μεταβλητή που να ελέγχει το τέλος κάθε επανάληψης του εξωτερικού βρόχου (“Για i από 2 μέχρι n”) αν για την τρέχουσα τιμή του i έγιναν αντιμεταθέσεις στοιχείων.

ΛΥΣΗ: (περισσότερα…)