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

You got 10 of 20 possible points.
Your score: 50%
Question 1

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

 

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer

50
 

0

20

0

5

0
Selected

10
 

1
Should have chosen
Question 2

Η σειριακή αναζήτηση σαρώνει όλα τα στοιχεία μιας ταξινομημένης λίστας χωρίς να εκμεταλλεύεται τη διάταξη των στοιχείων

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

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

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

if students[4] < students[3]:

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

 

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected

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

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

0

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

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

0
Should have chosen

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

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

0
Question 4

για την παρακάτω λίστα a=[9, -2, 6, 4, -8, 12, 5, 18] Συμπληρώστε τα κενά για να γίνει αύξουσα ταξινόμηση

a = [9, -2, 6, 4, -8, 12, 5, 18]

N = len(a)

for i in range(N-1):

        for j in range( ___  ,  _____ , -1):

                if a[j+1] > a[j]:

                       a[j], a[j + 1] = a[j + 1], a[j]

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer

for i in range(N-1):

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

                if a[j+1] > a[j]:

                       a[j], a[j + 1] = a[j + 1], a[j]

0

for i in range(N-1):

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

                if a[j+1] > a[j]:

                       a[j], a[j + 1] = a[j + 1], a[j]

0
Selected

for i in range(N-1):

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

                if a[j+1] > a[j]:

                       a[j], a[j + 1] = a[j + 1], a[j]

1
Should have chosen
Question 5

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 6

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

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

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected

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

0

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

0
Should have chosen

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

0
Question 7

Η δυαδική αναζήτηση μπορεί να χρησιμοποιηθεί τόσο σε αύξουσα ταξινομημένη λίστα, όσο και σε φθίνουσα

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

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

def binarySearch(lista, key):

        first = 0

        last = len(lista) - 1

        found = False

        while not found and first <= last:

                mid = (first + last) / 2

                if  key == lista[mid] :

                      found = True

                elif key > lista[mid]  :

                      last = mid - 1

                else:

                    first  = mid +1

        return found

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

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

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: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer
True0
Selected
False1
Should have chosen
Question 10

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

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

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

 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

[2, 4, 12, 20]

0

None

0

False

0
Question 12

Στην παρακάτω αύξουσα ταξινομημένη λίστα  L ψάχνουμε το 45.

0 1 2 3 4 5 6 7 8 9 10 11 12 13
5 10 17 23 28 30 35 40 45 50 60 63 68 70

η πρώτη σύγκριση για τον αριθμό 45 θα είναι με το στοιχείο στο δείκτη: (0+13)/2 =6 άρα με τον L[6] άρα με το 35.

Ποιος είναι ο επόμενος αριθμός που θα συγκριθεί το 45;

 

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer

63

0
Selected

60

1
Should have chosen

17

0

50

0
Question 13

Η δυαδική αναζήτηση μπορεί να γίνει σε στοιχεία που βρίσκονται σε κάποια λογική διάταξη, είτε αυτά είναι αριθμοί είτε αλφαριθμητικά

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

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

 

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer

10

0

7

0

δύο στην εβδόμη = 27 = 128 άρα με 7 προσπάθειες μπορούμε να βρούμε έως και 128 στοιχεία

Should have chosen
Selected

4

0

8

0
Question 15

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

import random

secret_number = random.randint(1, 100)  # ο αριθμός που επιλέγει τυχαίο ο Η/Υ

guesses = 0   #προσπάθειες

found = False

while not found:

        guess = input(' Μάντεψε τον αριθμό')  # Ο αριθμός που δίνει ο χρήστης

        guesses + = 1

        if guess == secret_number:

                print 'Μπράβο το βρήκες με', guesses, 'προσπάθειες'

                found = True

        else:

                print 'Δυστυχώς δεν το βρήκες, ξαναπροσπάθησε'
 

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer

else:

        if guess < secrtet_number:

                print ' Ο αριθμός σου είναι μικρότερος από τον ζητούμενο'

        else:

                print ' Ο αριθμός σου είναι μεγαλύτερος από τον ζητούμενο'   

0
Should have chosen
Selected

else:

        if guess > guesses:

                print ' Ο αριθμός σου είναι μικρότερος από τον ζητούμενο'

        else:

                print ' Ο αριθμός σου είναι μεγαλύτερος από τον ζητούμενο'

0

else:

        if guess < secrtet_number:

                print ' Ο αριθμός σου είναι μικρότερος από τον ζητούμενο'

        else:

                print ' Ο αριθμός σου είναι μεγαλύτερος από τον ζητούμενο'

0
Question 16

Ο παρακάτω αλγόριθμος επιλέγει έναν αριθμό από το 1 έως και το 1000 και ο χρήστης προσπαθεί να τον μαντέψει με τη βοήθεια μηνυμάτων από το Η/Υ (αν ο αριθμός που έδωσε ο χρήστης είναι μικρότερος ή μεγαλύτερος). Βελτιώστε τον αλγόριθμο στην  while ώστε ο χρήστης να σκεφτεί με καλύτερη στρατηγική και να μειώσει τις προσπάθειές του για να βρει τον κρυφό αριθμό. Οι προσπάθειες που θα μπορεί να δώσει είναι 10

import random

secret_number = random.randint(1, 1000)  # ο αριθμός που επιλέγει τυχαίο ο Η/Υ

guesses = 0   #προσπάθειες

found = False

while not found:

        guess = input(' Μάντεψε τον αριθμό')  # Ο αριθμός που δίνει ο χρήστης

        guesses + = 1

        if guess == secret_number:

                print 'Μπράβο το βρήκες με', guesses, 'προσπάθειες'

                found = True

        else:

                if guess < secrtet_number:

                        print ' Ο αριθμός σου είναι μικρότερος από τον ζητούμενο'

                else:

                        print ' Ο αριθμός σου είναι μεγαλύτερος από τον ζητούμενο'  

#Τέλος της while

if  found :  # αφού αν είναι True αρκεί (μπορούμε και found == True:)

        print 'Μπράβο το βρήκες με ', guesses, ' προσπάθειες'

else:

        print 'Δυστυχώς δεν το βρήκες'

Score: 0 of 1
Your answerChoiceScoreFeedbackCorrect answer

while not found or guesses < 10:

0

while not found and guesses < 10:

0
Should have chosen

while not found or guesses > 10:

0
Selected

while not found and guesses > 10:

0
Question 17

Τι θα εμφανιστεί όταν θα γίνει η κλήση της συνάρτησης binarySearch για τη λίστα: L [7, 9, 15, 67, 77, 85];

def binarySearch(array, key):

        first = 0

       last = len(array) - 1

        pos = 'Δεν υπάρχει'

        while first <= last and pos == -1:

                mid = (first + last) / 2

                if array[mid] == key:

                        pos = mid

                elif array[mid] < key:

                        first = mid + 1

               else:

                       last = mid - 1

        return pos

print binarySearch(L, 5):

 

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer

5

0

2

0
Selected

Δεν υπάρχει

(Το βιβλίο αναφέρει αν δε το βρει  pos = -1, αλλά είναι λάθος γιατί η θέση -1 είναι η τελευταία)

 

1
Should have chosen
Question 18

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

[4, 6, 8, 18, 30, 50, 56, 68, 70, 3, 1]

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer
Selected

2

1
Should have chosen

1

0

3

0

4

0
Question 19

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

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

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

 

Score: 1 of 1
Your answerChoiceScoreFeedbackCorrect answer

8

0
Selected

4

1
Should have chosen

16

0

2

0