Μάθημα : Προγραμματισμός Η/Υ

Κωδικός : T522234

T522234 - ΔΗΜΗΤΡΙΟΣ ΜΠΑΜΠΑΣ

Ενότητες μαθήματος

Ταξινόμηση Ευθείας ανταλλαγής

#Αλγόριθμος Ταξινόμησης Bubble Sort
def bubbleSort(A):
             N=len(A)
             for i in range(N-1):        
               #καθορίζει πόσα "περάσματα" θα γίνουν

                   for j in range(N-1, i, -1):
                               if A[ j ] < A[ j-1 ] :
                                                A[ j ], A[ j-1 ] = A[ j-1 ], A[ j ]

Πολυμέσα
Ταξινόμηση ευθείας ανταλλαγής ή ταξινόμησης φυσαλίδας

ένα βίντεο που εξηγεί τη λειτουργία του αλγορίθμου

Παράδειγμα

def bubbleSort(A):
       N=len(A)
       for i in range(N-1): #καθορίζει πόσα "περάσματα" θα γίνουν
                for j in range(N-1, i, -1):
                            if A[ j ] < A[ j-1 ] :
                                            A[ j ], A[ j-1 ] = A[ j-1 ], A[ j ]
                print 'perasma ', i+1, ':',A

#!!!!!!!!!!!!!!!!!
lista=[14,8,89,4,2,41,63,11,5]
print lista
bubbleSort(lista)
print lista

B2.
∆ίνεται παρακάτω η λίστα Α με 6 αριθμούς. Να εκτελέσετε τον αλγόριθμο ταξινόμησης ευθείας ανταλλαγής για την ταξινόμηση των αριθμών σε αύξουσα σειρά, συμπληρώνοντας παράλληλα τα κενά στον παρακάτω πίνακα, έτσι ώστε να φαίνονται τα στοιχεία της λίστας αμέσως μετά από κάθε πέρασμα του αλγορίθμου.

               
Α 55 34 5 2 2 1  
1ο πέρασμα             (μον. 2)
2ο πέρασμα             (μον. 2)
3ο πέρασμα             (μον. 2)
4ο πέρασμα             (μον. 2)
5ο πέρασμα             (μον. 2)


Μονάδες 10
(ΠΑΝΕΛΛΑ∆ΙΚΕΣ ΙΟΥΝΙΟΥ 2019)

 

Λύση

θεση                                                                               0    1    2    3    4    5
A                i               N-1,i,-1                                       55    34  5    2    2    1
1                0               5,0,-1                                           1    55  34   5    2    2
2                1               5,1,-1                                           1    2    55   34   5   2
3                2               5,2,-1                                           1    2    2     55  34   5
4                3               5,3,-1                                           1    2    2      5   55  34
5                4               5,4,-1                                           1    2    2      5   34  55

 

B1.
Δίνεται το παρακάτω τμήμα προγράμματος σε γλώσσα προγραμματισμού Python που υλοποιεί ταξινόμηση ευθείας ανταλλαγής (bubble sort) στα στοιχεία της λίστας lista κατά φθίνουσα σειρά:
N=len(lista)
for i in range(1, ( 1 ) , ( 2 ) ):
                    for j in range(N-1, ( 3 ) ,-1):
                                             if lista[ ( 4 ) ] ( 5 ) lista[j-1]:
                                                                    lista[j], lista[j-1] = lista[j-1], lista[j]
Στο τμήμα προγράμματος υπάρχουν υπογραμμισμένα κενά τα οποία έχουν αριθμηθεί. Να γράψετε στο τετράδιό σας τους αριθμούς 1, 2, 3, 4 και 5 που αντιστοιχούν στα κενά του παραπάνω τμήματος προγράμματος και δίπλα σε κάθε αριθμ ό αυτό που πρέπει να συμπληρωθεί ώστε να υλοποιείται σωστά η ταξινόμηση.
Μονάδες 10
(ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2017)

Πανελλαδικές 2021 Ιούνιος
Δ3. 
Να ταξινομεί τη λίστα BATHPROK με χρήση του αλγορίθμου ταξινόμησης ευθείας ανταλλαγής (φυσαλίδα - bubblesort) σε φθίνουσα σειρά ως προς τις βαθμολογίες αναδιατάσσοντας συγχρόνως τη λίστα PROK, έτσι ώστε να διατηρείται η αντιστοιχία ομάδων – βαθμολογιών. Σε περίπτωση ισοβαθμίας να γίνεται ταξινόμηση με αλφαβητική σειρά ως προς τα ονόματα της λίστας PROK.
Μονάδες 10
Λύση
PROK=['SSS','TTT','AAA','RRR','BBB','CCC','JJJ']
BATHPROK=[151,180,180,180,200,174,160]
print PROK
print BATHPROK
N=len(PROK)
for i in range(N-1):
    for j in range(N-1, i, -1):
        if BATHPROK[j] > BATHPROK[j-1] :
            BATHPROK[j], BATHPROK[j-1]= BATHPROK[j-1],BATHPROK[j]
            PROK[j], PROK[j-1]= PROK[j-1],PROK[j]
        elif BATHPROK[j-1]==BATHPROK[j]: #περίπτωση ισοβαθμίας
            if PROK[j-1]>PROK[j]:
                PROK[j-1],PROK[j]=PROK[j],PROK[j-1]
print PROK
print BATHPROK