Zum Inhalt springen

Empfohlene Beiträge

Geschrieben (bearbeitet)

Hallo Leute ich schreibe am Mittwoch Prüfung bin auch ganz fleißig am üben und habe jetzt eine Aufgabe gefunden die mich total überfordert:(

Wäre nett wenn mir jemand versständlich erklären kann was man da machen muss. Bzw. den Lösungsweg aufzeigt.

a72x-m.jpg

Lg

barti20

Bearbeitet von Barti20
Geschrieben

Oki Doki,

das Ding wird auch QuickSort Algorithmus genannt. Wobei es ja in der Aufgabe bereits sortiert wird. Aber du kannst das im Netz nachlesen.

Du hast also deine Daten, die sortiert sind. Nun zähl mal die Elemente. Es sind genau 15. Da man immer schön bei "0" anfängt sind es 14. Das Teilst du durch 2, sprich 7.

nun zählst du von Links nach rechts bis 7. WICHTIG! Beginn mit 0. Sprich 0, 1, 2, 3 .... 7 Das ist dein erstes Element was du untersuchst. Ist es größer oder kleiner als die gesuchte Zahl ? Beim ersten ist es kleiner deswegen sagst du die aktuelle Position des Elements + 1 um in die höhere Fläche zukommen und zählst ab hier die Elemente ... usw.

Geschrieben

also ganz einfach:)

du hast ja die liste von zahlen das sind 15 stück. Jetzt suchst du die 8 Zahl. Diese ist stelle eins :) also das wäre die 3. von den neun Zahlen. Jetzt suchst du in der oberen hälfte die mitte das wäre die 7.Stelle von den neun zahlen, jetzt wieder die hälte das wäre die 5.Stelle von den neun zahlen und dann kommt schon die 144 :)

also immer halbieren sozusagen:)

Geschrieben

ähmm rall ich net kann man das vlt. detailierter machen ? also das man 14 elemente hat konnte ich nachvollziehen (ab 0 gezählt) aber was ich net ralle warum durch 2 und was hat es mit den zählen auf sich ?

Geschrieben

weil er immer mit der Zahl in der Mitte überprüft also ob die ausgewählte Zahl größer oder kleiner als die Zahl in der Mitte der Zahlenfolge is.... und dies tut er solang bis er die gewünste Zahl gefunden hat.

Geschrieben

Hmm also ich Schlüssel das jetzt mal auf korregiert mich wenn ich was falsch mache ..

unte=0[pos0]

oben=n-1[pos1]

gefunden=false[pos2]

mitte =|(unten+oben)(2| [pos3/4/5]

feld[mitte]=element? [pos6/7]

gefunden=true [pos8]

feld[mitte]>element? [pos9]

oben=mitte-1 [pos10/11]

unten=mitte+1[12/13]

mitte=-1 [pos14]

Rückgabe von mitte [pos15]

so und wie geths nun weiter ?

hier an der stele : feld[mitte] > element?

wird jetzt eingetrage die 8 ziffer also 34 heisst :

feld[34]>144

so nein also wird mitteum eins ehöht dann sind wir bei

feld[35]>144

und das macht er solange wie feld[x] nicht 144 is richtig ?

aber warum muss ich durch 2 teilen also die 14 positionen durch 2 ?

und vorallem warum zähl ich 15 (16) statt 14 wo leigt mein fehler ?

Geschrieben

Ganz einfach ;-)

1. unten=0, oben=n-1 << Setzt die Anfangswerte 0 und 14 (15 Elemente-1)

2. mitte= |(unten + oben) << Setzt die 1. Mitte auf 7 (14/2=7)

3. feld[mitte] = element? << Nein (Element ist ja 144 und feld[mitte] ist 21)

4. feld[mitte] > element? << Nein (Da 21 nicht größer als 144 ist)

5. unten = mitte+1 << unten wird auf 8 gesetzt (wegen mitte+1)

6. sieht wieder wie 1. aus, nur ist hier unten=8 und oben 14

...

Und so machst du das weiter bis du irgendwann an dem Punkt

feld[mitte]= element? <<Ja

ankommst.

Geschrieben

hmm jetzt verwirrst du mich :( oben wurde gesagt das die erste mitte 34 (8) und nun meinst es is 21(7) aber deins kann ich logischer nach vollziehen.

was is nun richtig?

Geschrieben

Sry hatte einen kleinen Flüchtigkeitsfehler drin, so ist es richtig:

1. unten=0, oben=n-1 << Setzt die Anfangswerte 0 und 14 (15 Elemente-1)

2. mitte= |(unten + oben) << Setzt die 1. Mitte auf 7 (14/2=7)

3. feld[mitte] = element? << Nein (Element ist ja 144 und feld[mitte] ist 34)

4. feld[mitte] > element? << Nein (Da 34 nicht größer als 144 ist)

5. unten = mitte+1 << unten wird auf 8 gesetzt (wegen mitte+1)

6. sieht wieder wie 1. aus, nur ist hier unten=8 und oben 14

Das 7. Feld ist natürlich 34 und nicht 21 :D (Man fängt ja bei 0 an zu zählen)

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...