Κεθάιαην 3 Δνκέο Δεδνκέλσλ θαη Αιγόξηζκνη - Σεηξάδην Μαζεηή ηελ ηάμε ΔΣ1. ε κία θαηαζθήλσζε ππάξρνπλ 300 παηδηά θαη θαζέλα από απηά έρεη κνλαδηθό αξηζκό από ην 1 έσο θαη ην 300 πνπ ηνπ αληηζηνηρεί. Γηα θάζε παηδί είλαη γλσζηή ε ειηθία ηνπ. Να ρξεζηκνπνηεζεί ε δνκή ηνπ πίλαθα γηα λα απνζεθεύνληαη νη ειηθίεο ησλ παηδηώλ θαη λα βξεζεί ν θαηάιιεινο αιγόξηζκνο ππνινγηζκνύ ηνπ κηθξόηεξνπ θαη κεγαιύηεξνπ ζε ειηθία παηδηνύ θαη λα εθηππώλεηαη ηόζν ε ειηθία όζν θαη ν θσδηθόο ηνπ κηθξόηεξνπ θαη κεγαιύηεξνπ παηδηνύ Αιγόξηζκνο Καηαζθήλωζε Δεδνκέλα // ΗΛΙΚΙΑ // ειάρηζηνο ΗΛΙΚΙΑ[1] ζέζε_ειάρηζηνο 1 κέγηζηνο ΗΛΙΚΙΑ[1] ζέζε_κέγηζηνο 1 Γηα i από 2 κέρξη 300 Αλ (ΗΛΙΚΙΑ[i] < ειάρηζηνο) ηόηε ειάρηζηνο ΗΛΙΚΙΑ[i] ζέζε_ειάρηζηνο i Αλ (ΗΛΙΚΙΑ[i] > κέγηζηνο) ηόηε κέγηζηνο ΗΛΙΚΙΑ[i] ζέζε_κέγηζηνο i Εθηύπσζε "Η κηθξόηεξε ειηθία είλαη ", ειάρηζηνο, " απν ην παηδί κε θωδηθό", ζέζε_ειάρηζηνο Εθηύπσζε "Η κεγαιύηεξε ειηθία είλαη ", κέγηζηνο, " απν ην παηδί κε θωδηθό", ζέζε_κέγηζηνο Σέινο Καηαζθήλωζε ΔΣ2. Ο αιγόξηζκνο ηεο θπζαιίδαο όπσο δηαηππώζεθε ζηελ παξάγξαθν 3.7 έρεη ην κεηνλέθηεκα όηη δελ είλαη αξθεηά «έμππλνο» ώζηε λα δηαπηζηώλεη ζηελ αξρή ή ζην κέζν ηεο δηαδηθαζίαο αλ ν πίλαθαο είλαη ηαμηλνκεκέλνο. Να ζρεδηαζζεί κία παξαιιαγή ηνπ αιγνξίζκνπ απηνύ πνπ λα ζηακαηά όηαλ δηαπηζησζεί όηη ηα ζηνηρεία ηνπ πίλαθα είλαη ήδε ηαμηλνκεκέλα. Τπόδεημε: Να ρξεζηκνπνηήζεηε κία βνεζεηηθή κεηαβιεηή πνπ λα ειέγρεη ην ηέινο θάζε επαλάιεςεο ηνπ εμσηεξηθνύ βξόρνπ (Γηα i από 2 κέρξη n) αλ γηα ηελ ηξέρνπζα ηηκή ηνπ i έγηλαλ αληηκεηαζέζεηο ζηνηρείσλ
Αιγόξηζκνο Κεθ3ΔΣ2! Με Όζν.. επαλάιαβε Δεδνκέλα // table, n // Sorted Φεπδήο i 2 Όζν (i <= n) θαη (Sorted = Φεπδήο) επαλάιαβε Sorted Αιεζήο Γηα j απν n κέρξη i κε_βήκα -1 Αλ table[ j 1 ] > table[ j ] ηόηε Sorted Φεπδήο Αληηκεηάζεζε table[j], table[j - 1] i i + 1 Απνηειέζκαηα // table // Σέινο Κεθ3ΔΣ2 Αιγόξηζκνο Κεθ3ΔΣ2 Δεδνκέλα // table, n // i 2 Αξρή_επαλάιεςεο Sorted Αιεζήο! Με Αξρή_επαλάιεςεο.. κέρξηο_όηνπ Γηα j απν n κέρξη i κε_βήκα -1 Αλ table[j - 1] > table[j] ηόηε Sorted Φεπδήο Αληηκεηάζεζε table[j - 1], table[j] i i + 1 Μέρξηο_όηνπ i > n ή Sorted = Αιεζήο Απνηειέζκαηα // table // Σέινο Κεθ3ΔΣ2 ΔΣ6. Μία νηθνινγηθή νξγάλσζε δηαζέηεη ζηνηρεία γηα ην πνζνζηό δαζώλ γηα 50 δηαθνξεηηθέο ρώξεο. Υξεηάδεηαη λα πάξεη απόθαζε γηα λα δηνξγαλώζεη κία εθδήισζε δηακαξηπξίεο ζηηο 10 ρώξεο πνπ έρνπλ ην ρακειόηεξν πνζνζηό δαζώλ. Να δνζεί αιγόξηζκνο πνπ ζα ηαμηλνκεί ηα πνζνζηά δαζώλ ησλ ρσξώλ κε ρξήζε ηεο κεζόδνπ ηεο επζείαο αληαιιαγήο θαη ζα εθηππώλεη ηηο 10 ρώξεο ζηηο νπνίεο ζα δηνξγαλσζνύλ νη εθδειώζεηο Αιγόξηζκνο Δάζε Δεδνκέλα // ΥΧΡΑ, ΠΟΟΣΟ // Γηα i από 2 κέρξη 11! ελδηαθέξνκαη κόλν γηα ηα 10 πξώηα, άξα 10 επαλαιήςεηο Γηα j από 50 κέρξη i κε_βήκα 1! αύμνπζα ηαμηλόκεζε Αλ ΠΟΟΣΟ[j-1] > ΠΟΟΣΟ[j] ηόηε Αληηκεηάζεζε ΠΟΟΣΟ[j-1], ΠΟΟΣΟ[j] Αληηκεηάζεζε ΥΧΡΑ[j-1], ΥΧΡΑ[j]
Γηα i από 1 κέρξη 10! εθηύπσζε ησλ 10 πξώησλ ηηκώλ Εθηύπσζε ΥΧΡΑ[i] Σέινο Δάζε ην ζπίηη Δ1. Δίλεηαη ν παξαθάησ πίλαθαο από αληηζηνηρίζεηο λνκηζκάησλ δηαθόξσλ θξαηώλ: Νόκηζκα ρώξαο Αγνξά Πώιεζε Δνιιάξην ΗΠΑ 1.01 1.03 Δνιιάξην Καλαδά 0.65 0.66 Λίξα Αγγιίαο 1.57 1.59 Γελ Ιαπωλίαο 0.01 0.012 Φξάγθν Ειβεηίαο 0.67 0.68 Να γξαθηεί έλαο αιγόξηζκνο πνπ ζα θάλεη κεηαηξνπέο ελόο πνζνύ από ηα μέλα λνκίζκαηα ζε επξώ θαη από επξώ ζην αληίζηνηρν μέλν λόκηζκα Θεωξνύκε δεδνκέλν δηζδηάζηαην πίλαθα ΙΟΣΙΜΙΑ[5, 2] πνπ πεξηέρεη ηηο ηηκέο ηεο εθθώλεζεο. Κάζε γξακκή αληηζηνηρεί ζε έλα λόκηζκα θαη θάζε ζηήιε ζε αγνξά ή πώιεζε. Ο αιγόξηζκνο ζα δηαβάδεη ην πνζό πνπ ζα κεηαηξαπεί, ηνλ αύμωλ αξηζκό ηνπ λνκίζκαηνο εηζόδνπ (αλ έρεη ηηκή 1-5 αληίζηνηρα κε ηνλ πίλαθα, αλ έρεη ηηκή 6 ελλνείηαη ην επξώ) θαη ηνλ αύμωλ αξηζκό ηνπ λνκίζκαηνο εμόδνπ Αιγόξηζκνο Ιζνηηκία Δεδνκέλα // ΙΟΣΙΜΙΑ // Δηάβαζε λόκηζκα_είζνδνο, λόκηζκα_έμνδνο, πνζό Αλ λόκηζκα_είζνδνο = 6 ηόηε πνζό_κεηαηξνπή πνζό / ΙΟΣΙΜΙΑ[λόκηζκα_έμνδνο, 2] Αιιηώο πνζό_κεηαηξνπή πνζό * ΙΟΣΙΜΙΑ[λόκηζκα_είζνδνο, 1] Εθηύπσζε πνζό_κεηαηξνπή Σέινο Ιζνηηκία Δ2. Καηά ηε δηάξθεηα ελόο πξσηαζιήκαηνο κπάζθεη θαηαγξάθεηαη ν αξηζκόο ησλ πόλησλ πνπ έρνπλ βάιεη 5 παίθηεο ζε 5 δηαθνξεηηθά παηρλίδηα. Να γξαθηεί αιγόξηζκνο πνπ ζα ζε βνεζήζεη λα θξαηήζεηο ζε
έλα δηζδηάζηαην πίλαθα απηά ηα ζηνηρεία θαη ζηε ζπλέρεηα λα ππνινγίζεηο ηνλ παίθηε πνπ έρεη πεηύρεη ην κεγαιύηεξν αξηζκό πόλησλ από όια ηα παηρλίδηα Θεωξνύκε δεδνκέλν δηζδηάζηαην πίλαθα ΠΟΝΣΟΙ[5, 5] πνπ πεξηέρεη ηνπο πόληνπο ηνπ παίθηε ζε θάζε αγώλα. Κάζε γξακκή ηνπ πίλαθα αληηζηνηρεί ζε έλαλ παίθηε θαη θάζε ζηήιε ζε έλαλ αγώλα. Θα δεκηνπξγήζνπκε έλα πίλαθα κε ηνπο ζπλνιηθνύο πόληνπο θάζε παίθηε - κνλνδηάζηαηνο 5 ζέζεωλ θαη ζα εληνπίζνπκε ζε απηόλ ην κέγηζην ζηνηρείν θαη ηε ζέζε ηνπ Αιγόξηζκνο Πξωηάζιεκα Δεδνκέλα // ΠΟΝΣΟΙ // Γηα i από 1 κέρξη 5 ΤΝ_ΠΟΝΣΟΙ[i] 0 Γηα j από 1 κέρξη 5 ΤΝ_ΠΟΝΣΟΙ[i] ΤΝ_ΠΟΝΣΟΙ[i] + ΠΟΝΣΟΙ[i, j] κέγηζηνο ΤΝ_ΠΟΝΣΟΙ[1] ζέζε_κέγηζηνο 1 Γηα i από 2 κέρξη 5 Αλ (ΤΝ_ΠΟΝΣΟΙ[i] > κέγηζηνο) ηόηε κέγηζηνο ΤΝ_ΠΟΝΣΟΙ[i] ζέζε_κέγηζηνο i Εθηύπσζε "Ο παίθηεο κε ην κεγαιύηεξν score είλαη ν", ζέζε_κέγηζηνο, "κε", κέγηζηνο, "πόληνπο" Σέινο Πξωηάζιεκα Δ3. Έζησ όηη ζέινπκε λα δηαηάμνπκε ηνπο καζεηέο κίαο ηάμεο θαηά θζίλνπζα ζεηξά ύςνπο. Η ηερληθή πνπ ζα αθνινπζήζνπκε είλαη ε εμήο. Αξρηθά, ηνπνζεηνύκε ηνπο καζεηέο ζε κία ηπραία ζεηξά. Καηόπηλ ζπγθξίλνπκε ην δεύηεξν κε ηνλ πξώην θαη αλ ρξεηαζζεί ηνπο αληηκεηαζέηνπκε ώζηε πξώηνο λα είλαη ν ςειόηεξνο. ηε ζπλέρεηα ζεσξνύκε ηνλ ηξίην θαη ηνλ ηνπνζεηνύκε ζηε ζσζηή ζεηξά ζε ζρέζε κε ηνλ πξώην θαη ην δεύηεξν. Καη' απηόλ ηνλ ηξόπν ζπλερίδνπκε κέρξη λα ηνπνζεηήζνπκε ζηε ζσζηή ζεηξά όινπο ηνπο καζεηέο. Να ζρεδηαζζεί έλαο αιγόξηζκνο πνπ λα πινπνηεί απηή ηε κέζνδν ηαμηλόκεζεο Αιγόξηζκνο Κεθ3Δ3 Δεδνκέλα // table, n // Γηα i από 2 κέρξη n Γηα j από i κέρξη 2 κε_βήκα -1 Αλ table[j] > table[j - 1] ηόηε Αληηκεηάζεζε table[j], table[j - 1]
Απνηειέζκαηα // table // Σέινο Κεθ3Δ3 Δ4. Έλαο καζεηήο έρεη κία ζπιινγή από δίζθνπο CD θαη γηα θάζε CD έρεη θαηαγξάςεη ζηνλ ππνινγηζηή ηνλ ηίηιν θαη ηε ρξνληά έθδνζεο ηνπ. Να ηαμηλνκεζνύλ ηα CD κε βάζε ηε ρξνληά ηνπο θαη λα ππνινγηζηεί ν αξηζκόο ησλ CD πνπ έρεη ν καζεηήο κε ρξνλνινγία έθδνζεο πξηλ από ην 1995 Θεωξνύκε δεδνκέλν πίλαθα CD[Ν] όπνπ θάζε γξακκή ηνπ πίλαθα πεξηέρεη ηνλ ηίηιν ηνπ ζπγθεθξηκέλνπ CD θαη πίλαθα ΕΣΟ[Ν] όπνπ πεξηέρεη ηε ρξνληά έθδνζεο, Ν είλαη ην πιήζνο ηωλ δηαζέζηκωλ ηίηιωλ Αιγόξηζκνο πιινγή_cd Δεδνκέλα // N, CD, ΕΣΟ // Γηα i από 2 κέρξη Ν Γηα j από Ν κέρξη i κε_βήκα 1 Αλ ΕΣΟ[j-1] > ΕΣΟ[j] ηόηε! αύμνπζα ηαμηλόκεζε Αληηκεηάζεζε ΕΣΟ[j-1], ΕΣΟ[j] Αληηκεηάζεζε CD[j-1], CD[j] πιήζνο 0 Γηα i από 1 κέρξη N Αλ (ΕΣΟ[i] < 1995) ηόηε πιήζνο πιήζνο + 1 Εθηύπσζε "Σα CD πξηλ ην 1995 είλαη ", πιήζνο Σέινο πιινγή_cd Αιγόξηζκνο Αλαδήηεζε Δεδνκέλα // table, n, key //! Mεδεληζκόο ζηνηρείσλ πίλαθα ζέζεσλ P! ηνλ πίλαθα Ρ απνζεθεύνληαη νη ζέζεηο! πνπ βξέζεθε key, ζηνλ πίλαθα table Γηα i απν 1 κέρξη n P[i] 0 count 0! Μεηξάεη πόζεο θνξέο βξέζεθε ην key Γηα i απν 1 κέρξη n Αλ table[i] = key ηόηε count count + 1 P[count] i! Εθηύπσζε ησλ ζέζεσλ πνπ βξέζεθαλ keys Αλ count > 0 ηόηε
Εκθάληζε count Γηα i απν 1 κέρξη count Εκθάληζε P[i] Αιιηώο Εκθάληζε " Δελ βξέζεθε ν αξηζκόο ", key Σέινο Αλαδήηεζε