Κεφάλαιο 5 - Βιβλίο-Τετράδιο Εργασιών Μαθητή

You got 11 of 20 possible points.
Your score: 55%
Question 1

Σε μια ταξινομημένη λίστα 1000 στοιχείων, πόσες είναι οι περισσότερες συγκρίσεις που θα χρειαζόταν για να βρεθεί οποιοδήποτε στοιχείο χρησιμοποιοώντας τη δυαδική αναζήτηση;

 

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected

10
 

1
Should have chosen

20

0

5

0

50
 

0
Question 2

Ο παρακάτω αλγόριθμος δυαδικής αναζήτησης χρησιμοποιείται σε λίστες με φθίνουσα ταξινόμηση:

def binarySearch(lista, key):

        first = 0

        last = len(lista) - 1

        found = False

        while not found and first <= last:

                mid = (first + last) / 2

                if lista[mid] == key:

                      found = True

                elif lista[mid] < key:

                      first = mid + 1

                else:

                     last = mid - 1

        return found

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected
True0
False0
Should have chosen
Question 3

Ο αλγόριθμος της σειριακή αναζήτησης μπορεί να χρησιμοποιηθεί μόνο σε ταξινομημένες λίστες

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected
True0
False0
Should have chosen
Question 4

Επιλέξτε το σωστό πρόγραμμα που θα εμφανίζει σε φθίνουσα σειρά ως προς τους βαθμούς, τα ονόματα των μαθητών της τάξης

Θεωρήστε ότι η λίστα nameL με τα ονόματα και η λίστα gradeL με τους βαθμούς είναι γεμάτες

 

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer

for i in range(N-1):

        for j in range(N-1, i , -1):

                if gradeL[j] > gradeL[j-1]: 

                       gradeL[j], gradeL[j-1] = gradeL[j-1], gradeL[j]

                       nameL[j], nameL[j-1] = nameL[j-1], nameL[j]

for i in range(N):

        print nameL[i]

 

0
Should have chosen
Selected

for i in range(N-1):

        for j in range(N-1, i , -1):

                if gradeL[j] < gradeL[j-1]: 

                       gradeL[j], gradeL[j-1] = gradeL[j-1], gradeL[j]

for i in range(N-1,-1,-1):

        print nameL[i]

 

0

for i in range(N-1):

        for j in range(N-1, i , -1):

                if gradeL[j] > gradeL[j-1]: 

                       gradeL[j], gradeL[j-1] = gradeL[j-1], gradeL[j]

                       nameL[j], nameL[j-1] = nameL[j-1], nameL[j]

for i in range(N-1, -1, -1):

        print nameL[i]

 

0

for i in range(N-1):

        for j in range(N-1, i , -1):

                if gradeL[j] < gradeL[j-1]: 

                       gradeL[j], gradeL[j-1] = gradeL[j-1], gradeL[j]

                       nameL[j], nameL[j-1] = nameL[j-1], nameL[j]

for i in range(N):

        print nameL[i]

 

0
Question 5

Να επιλεξετε τον  σωστό αλγόριθμο της Δυαδικής αναζήτησης ενός στοιχείου key σε μια αύξουσα ταξινομημένη λίστα array

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer

def binarySearch(array, key):

        first = 0

        last = len(array) - 1

        found = False

        while first <= last and not found:

                mid = (first + last) / 2

               if array[mid] == key:

                     found = True

               elif array[mid] < key:

                     first = mid + 1

              else:

                     last = mid - 1

        return found

0
Should have chosen

def binarySearch(array, key):

        first = 0

        last = len(array) - 1

        found = False

        while first <= last and not found:

                mid = (first + last) / 2

               if array[mid] == key:

                     found = True

               elif array[mid] < key:

                     first = mid - 1

              else:

                     last = mid + 1

        return found

0

def binarySearch(array, key):

        first = 0

        last = len(array) - 1

        found = False

        while first <= last and not found:

                mid = (first + last) / 2

               if array[mid] == key:

                     found = True

               elif array[mid] > key:

                     first = mid + 1

              else:

                     last = mid - 1

        return found

0
Selected

def binarySearch(array, key):

        first = 0

        last = len(array) - 1

        found = False

        while first <= last and not found:

                mid = (first + last) / 2

               if array[mid] == key:

                     found = True

               elif array[mid] < key:

                     last = mid + 1

              else:

                     first = mid - 1

        return found

0
Question 6

Η παρακάτω συνάρτηση υπολογίζει σωστά το πλήθος των True σε μια λίστα; Τι θα εμφανίσει το πρόγραμμα;

def count_True(lista):

        pl_true=0

        for item in lista:

                if item:

                        pl_true + = item

        return pl_true

L = [True, True, True, False, False]

print count_True(L)

 

 

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected

Τα υπολογίζει σωστώ, αφού η τιμή True που προσθέτει έχει αριθμητική αξία 1

Δηλαδή  True+True+True = 3

Άρα θα εμφανίσει 3
 

1
Should have chosen

True+True+True θα δώσει μήνυμα λάθους

0

rue+True+True θα δώσει ΤrueTrueTrue, άρα θα εμφανίσει: ΤrueTrueTrue

0
Question 7

Σε μια ταξινομημένη λίστα 16 στοιχείων, πόσες είναι οι περισσότερες συγκρίσεις που θα χρειαζόταν για να βρεθεί οποιοδήποτε στοιχείο χρησιμοποιοώντας τη δυαδική αναζήτηση;

 

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer

16

0

2

0

8

0
Selected

4

1
Should have chosen
Question 8

Πόσα περάσματα θα γίνουν για την αύξηση ταξινόμηση της λίστας:

[28, 28, 28, 28, 28, 28, 28, 30, 30, 30, 30]

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer

2

0

1

0

0

0
Should have chosen
Selected

4

0
Question 9

Δίνεται το πρόβλημα: Να βρεθούν οι τρεις μεγαλύτεροι αριθμοί σε μια λίστα

Τι λύση θα επιλέγατε;

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer

Αύξουσα ταξινόμηση και μετά με τη for i in range(3)  θα εμφάνιζα τους τρεις πρώτους

0

Φθίνουσα ταξινόμηση και μετά με τη for i in range(Ν-1, Ν-4, -1)  θα εμφάνιζα τους τρεις πρώτους

0
Selected

Φθίνουσα ταξινόμηση και μετά με τη for i in range(3)  θα εμφάνιζα τους τρεις πρώτους

1
Should have chosen
Question 10

Επιλέξτε έναν πιο συνοπτικό τρόπο εκτέλεσης των παρακάτω εντολών, που δηλώνουν το πρώτο πέρασμα της αύξουσας ταξινόμησης σε μια λίστα 5 στοιχείων:

if students[4] < students[3]:

        students[4], students[3] = students[3], students[4]

if students[3] < students[2]:

        students[3], students[2] = students[2], students[3]

if students[2] < students[1]:

        students[2], students[1] = students[1], students[2]

if students[1] < students[0]:

        students[1], students[0] = students[0], students[1]

 

 

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected

for j in range( 4, 0, -1):

        if studnets[j-1] < students[j-2]:

                students[j-1], students[j-2] = students[j-2], students[j-1]

0

for j in range( 4, -1, -1):

        if studnets[j] < students[j-1]:

                students[j], students[j-1] = students[j-1], students[j]

0

for j in range( 4, 0, -1):

        if studnets[j] < students[j-1]:

                students[j], students[j-1] = students[j-1], students[j]

0
Should have chosen

for j in range( 5, 0, -1):

        if studnets[j] < students[j-1]:

                students[j], students[j-1] = students[j-1], students[j]

0
Question 11

Ο αλγόριθμος αυθείας ανταλλαγής, αν και θεωρείται από τους πιο αργούς αλγορίθμους ταξινόμησης, έχει ένα πολύ σημαντικό πλεονέκτημα: ότι μπορεί να τροποποιηθεί, ώστε να τερματίσει μόλις διαπιστώσει ότι η λίστα έχει ταξινομηθεί

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected
True1
Should have chosen
False0
Question 12

O παρακάτω αλγόριθμος της αύξουσας ταξινόμησης Ν στοιχείων σε τι μειονεκτεί;

for i in range(N-1):

        for j in range(N-1, 0, -1):

                if A[j] < A[j-1]:

                       A[j], A[j-1] = A[j-1], A[j]

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer

Αφού τα στοιχεία είναι N, τα περάσματα από την εξωτερική for θα πρέπει να είναι N και όχι N-1

0
Selected

Σε κάθε πέρασμα, το μικρότερο στοιχείο ταξινομείται. Άρα στην εσωτερική επανάληψη είναι περιττό το να συγκρίνουμε πάντα έως και το ήδη ταξινομημένο στοιχείο, δηλαδή έως και το στοιχείο 0

1
Should have chosen

Δε μειονεκτεί σε τίποτα αφού είναι η βέλτιστη ταξινόμηση....τι να κάνουμε τώρα;

0
Question 13

Ο αλγόριθμος ταξινόμησης ευθείας ανταλλαγής είναι γνωστός και ως αλγόριθμος ταξινόμησης φυσαλίδας γιατί σε κάθε πέρασμα το μικρότερο στοιχείο ανεβαίνει, όπως συμβαίνει και σε και μια φυσαλίδα, στην επιφάνεια του νερού

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected
True1
Should have chosen
False0
Question 14

Η δυαδική αναζήτηση ισχύει για όλους τους τύπους δεδομένων για τους οποίους έχουμε ορίσει του συγκριτικούς τελεστές. Αυτό το χαρακτηριστικό ονομάζεται πολυμορφισμός και είναι από το βασικά πλεονεκτήματα της Python

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer
True0
Should have chosen
Selected
False0
Question 15

Η αντιμετάθεση (αμοιβαία αλλαγή τιμών των μεταβλητών α, β) γίνεται στην Pyhton με την απλή εντολή:

a, b = b, a

Πως μπορεί να γίνει με επιπλέον μεταβλητή;

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer

temp = a

b = a

b = temp

0

temp = b

a = b

a = temp

0
Selected

temp = a

a = b

b = temp
 

1
Should have chosen
Question 16

Ο παρακάτω αλγόριθμος βελτιστοποιεί την ταξινόμηση, ώστε όταν η λίστα ταξινομηθεί να μην κάνει άσκοπα περάσματα

def optimizedBubbleSort(A):

        N = len(A)

        isSorted = False

        i = 0

       while i < N-1  and not isSorted:

                isSorted = True

                for j in range(N-1, i, -1):

                        if A[j] < A[j-1]:

                               A[j], A[j-1] = A[j-1], A[j]

                               isSorted = False

                i + = 1

πόσα περάσματα θα γίνουν για τη λίστα [7, 8, 9, 12, 4, 5, 11] χρησιμοποιώντας τη βελτιστοποιημένη ταξινόμηση και πόσα άσκοπα θα γινόταν με τον απλό αλγόριθμο ταξινόμησης;

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected
  • 2 περάσματα με το βελτιστοποιημένο αλγόριθμο ταξινόμησης
  • και Ν-1 = 7 - 1 = 6 συνολικά περάσματα ή 6 - 2 = 4 άσκοπα περάσματα με τον απλό αλγόριθμο
0
  • 4 περάσματα με το βελτιστοποιημένο αλγόριθμο ταξινόμησης
  • και Ν-1 = 7 - 1 = 6 συνολικά περάσματα ή 6 - 4 = 2 άσκοπα περάσματα με τον απλό αλγόριθμο
0
  • 3 περάσματα με το βελτιστοποιημένο αλγόριθμο ταξινόμησης
  • και Ν-1 = 7 - 1 = 6 συνολικά περάσματα ή 6 - 3 = 3 άσκοπα περάσματα με τον απλό αλγόριθμο
0
Should have chosen
Question 17

Τι θα εμφανίσει το παρακάτω πρόγραμμα;

 def check_D(mylist):

        d = True

        i = 0

        N = len(mylist)

        while d and i < N-1:

                if myList[i] < myList[i + 1]:

                        d = False

                i = i + 1

        return d

L = [20, 12, 4, 2]

print check_D(L)

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected

True

1
Should have chosen

False

0

None

0

[2, 4, 12, 20]

0
Question 18

Τι θα συμβεί στο παρακάτω τμήμα αλγορίθμου;

students = ['Δημήτρης', 'Ευγενία', 'Ναταλία', 'Ρένια', 'Αλέξανδρος']

if students[4] < students[3]:

        students[4], students[3] = students[3], students[4]

 

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected

Η λίστα θα γίνει:

['Δημήτρης', 'Ευγενία', 'Ναταλία', 'Αλέξανδρος', 'Ρένια']

0

Θα γίνει αύξουσα ταξινόμηση όλης της λίστας:

['Δημήτρης', 'Ευγενία', 'Ρένια', 'Ναταλία', 'Αλέξανδρος']

0

Η λίστα θα γίνει:

['Δημήτρης', 'Ευγενία', 'Ναταλία', 'Αλέξανδρος', 'Ρένια']

0
Should have chosen
Question 19

Η αντιμετάθεση (αμοιβαία αλλαγή τιμών των μεταβλητών α, β) γίνεται στην Pyhton με την απλή εντολή:

a, b = b, a

Πως μπορεί να γίνει με επιπλέον μεταβλητή;

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer

temp = a

a = b

a = temp

0
Selected

temp = b

b = a

a = temp

1
Should have chosen

temp = a

b = a

a = temp

0
Question 20

Για την παρακάρω λίστα με 7 αριθμούς ποια θα είναι η τιμή της λίστας μετά από τρία περάσματα, αν χρησιμοποιήσουμε τον αλγόριθμο της αύξουσας ταξινόμησης (φυσαλίδα);

[55, 34, 5, 3, 2, 1, 1]

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer

[1, 1, 55, 34, 5, 3, 2]

0

[1, 2, 3, 55, 34, 5, 1]

0
Selected

[1, 1, 2, 55, 34, 5, 3]

1
Should have chosen