Προτάσεις και ιδέες για τα θέματα 2019 στην ΑΕΠΠ

Ξεκίνησε από ΣΧΟΙΝΑΣ ΚΩΣΤΑΣ, 29 Μαΐου 2019, 05:24:58 ΜΜ

« προηγούμενο - επόμενο »

Λαμπράκης Μανώλης

Καλησπέρα

αν δεν κάνω λάθος κάπου το είχα διαβάσει στο βιβλίο πως ονομάζεται "έξυπνη" συγχώνευση, δεν το ανέφερα αυστηρά ως "ορισμό" .. όπως και να έχει είναι ωραία σαν άσκηση ..  :laugh: >:D

epsilonXi

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


Κώδικας: bash
χ <-- 1
ψ <-- 1
για θ από 1 μέχρι Μ+Ν
  αν ψ > Ν ή Α[χ] < Β[ψ] τότε
    Γ[θ] <-- Α[χ]
    χ <-- χ + 1
  αλλιώς
    Γ[θ] <-- Β[ψ]
    ψ <-- ψ + 1
  τέλος_αν
τέλος_επανάληψης


τώρα, αν θέλουμε να σκεφτούμε την πιθανότητα για index out of size error, που κατ' εμέ είναι θέμα διαχείρισης της διάζευξης από τον compiler, και δε θα έπρεπε να μας απασχολεί, μπορούμε να το σπάσουμε σε 3 περιπτώσεις

Κώδικας: bash
χ <-- 1
ψ <-- 1
για θ από 1 μέχρι Μ+Ν
  αν ψ > Ν 
    Γ[θ] <-- Α[χ]
    χ <-- χ + 1
  αλλιώς_αν Α[χ] < Β[ψ] τότε
    Γ[θ] <-- Α[χ]
    χ <-- χ + 1
  αλλιώς
    Γ[θ] <-- Β[ψ]
    ψ <-- ψ + 1
  τέλος_αν
τέλος_επανάληψης


ssimaiof

Για τη 2η περίπτωση πρέπει να ξέχασες μία ΑΝ.
Προφανώς μετά το ΑΝ ψ>Ν χρειάζεται και η ΑΛΛΙΩΣ_ΑΝ χ>Μ.
Ολοκληρωμένο :
Κώδικας: bash
  χ <- 1
  ψ <- 1
  ΓΙΑ θ ΑΠΟ 1 ΜΕΧΡΙ Μ + Ν
    ΑΝ ψ > Ν ΤΟΤΕ
      Γ[θ] <- Α[χ] 
      χ <- χ + 1
    ΑΛΛΙΩΣ_ΑΝ χ > Μ ΤΟΤΕ
      Γ[θ] <- Β[ψ] 
      ψ <- ψ + 1
    ΑΛΛΙΩΣ_ΑΝ Α[χ] < Β[ψ] ΤΟΤΕ
      Γ[θ] <- Α[χ] 
      χ <- χ + 1
    ΑΛΛΙΩΣ
      Γ[θ] <- Β[ψ] 
      ψ <- ψ + 1
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Σταύρος Σημαιοφορίδης

epsilonXi

βεβαίως
μα ούτε και η πρώτη είναι σωστή  :D

μάλλον θα κρατήσω αυτό που λες εσύ