MergeSort

Поділитися
Вставка
  • Опубліковано 5 кві 2021
  • Vorlesung für Informatik Bachelor

КОМЕНТАРІ • 17

  • @derechte6086
    @derechte6086 2 місяці тому +1

    Hihi ich bin so froh, dass ich mir letztes Jahr so viel Mühe gegeben habe, sodass ich Sie weiterhin als Professor habe - Sie machen das toll x)

  • @mengidol2697
    @mengidol2697 Місяць тому +1

    Sie retten mein Studium! Danke vielmals:D

  • @StyleTechnique
    @StyleTechnique 2 роки тому +9

    Ich habe ein Video "nur" in der UA-cam Suche gefunden. Dann auf den Kanal geklickt und allein das "sichten" der Videos hat mich zum Abo Button innerlich gedrängt. Jetzt nachdem ich das MergeSort Video gesehen habe bin *unglaublich* begeistert! Ich habe bisher nicht eine so gut und so anschauliche Erläuterung und Erklärung über einen Sortieralgorithmus gesehen, wie in diesem Video. Ich bin mir jetzt schon sicher das die anderen Videos genauso gut sind.
    Eine wirklich vergleichlose Arbeit - auf jeden Fall im deutschsprachigen Raum. Vielen dank für ihre Videos! Sie haben meinen größten Respekt! Toll!🥳

    • @Gogol-Doering
      @Gogol-Doering  2 роки тому +1

      Vielen Danke für das positive Feedback! :)

  • @maximus9190
    @maximus9190 Рік тому +2

    Absolut Klasse gemacht. Der gesamte Kanal ist so extrem hilfreich. Vielen dank:)

  • @silvanmeseck
    @silvanmeseck 2 роки тому +2

    Tolle Erklärung!

  • @OlliS71
    @OlliS71 Рік тому

    Vor allem kann man Mege-Sort in einer verketteten Liste auch ohne Performance-Verlust bis auf den des Pointer-Chasings (kein funktionierender Prefetch mehr durch die CPU und OoO-Serialisierung) durchführen. Man lässt die linke und rechte Rekursion eben nur jeweils den Anfang der eigenen Krette an den Aufrufer zurückgeben. Ich hab das mal gemacht und bin dabei einen hybriden Weg gegangen bzw. habe jeweils eine Kette von "Pages" gebildet die jeweils 1kB groß waren; das macht die Allokation duch Pooling dieser Pages recht einfach und schnell. Innerhalb der Pages habe ich dann den Vorteil linearer Zugriffe, also dass mehrere Elemente des "Arrays" ggf. in den selben Cachezeilen liegen und die CPU die fortlaufenden Zugriffe erkennen kann und innerhalb so einer Page dann auch Prefetching durchführen kann.

  • @pradelledtzameni4265
    @pradelledtzameni4265 11 місяців тому

    echt krass,danke sehr

  • @Salamaleikum80
    @Salamaleikum80 2 роки тому +2

    ich dachte der mergesort zerlegt in atomare Teile? Hier hingegen haben wir nur zwei halbe arrays? Was übersehe ich?

    • @Gogol-Doering
      @Gogol-Doering  2 роки тому +2

      Der Clou ist, dass die Sortierung der halben Arrays über rekursive Aufrufe von MergeSort selbst läuft, d.h. die Teilarrays werden ihrerseits wieder geteilt, diese dann wieder usw.. Das endet erst, wenn das Array vollständig zerlegt ist.

  • @Benexdrake
    @Benexdrake 2 роки тому

    Sort Algorithmen sind schon interessant, versuche gerade diese in C# mit Windows Forms mit Panel zu zeigen , hat bisher mit Bubble, Quick, Selection und Insertion funktioniert, aber bei Merge fällt es mir schwer die Positionen der Panels zu verändern.

    • @Gogol-Doering
      @Gogol-Doering  2 роки тому

      Klingt interessant. Leider kenne ich mich mit Windows Forms gar nicht aus. Was genau ist denn das Problem bei Merge im Vergleich zu anderen Algorithmen?

  • @snouzz-gaming917
    @snouzz-gaming917 2 роки тому

    18:30 wäre es dann nicht if (ilinks

    • @Gogol-Doering
      @Gogol-Doering  2 роки тому +1

      i_l darf bis m-1 laufen, also entweder "if (i_l

  • @JuniorWog
    @JuniorWog Рік тому

    warun einfach das gleiche Array benutzen `? es wäre doch weniger Bedingungen stehen , wenn wir richtig 2 unter Arrays hätten...

    • @Gogol-Doering
      @Gogol-Doering  Рік тому +1

      Tatsächlich benutzen wir ja im Algorithmus Merge zwei Arrays, nämlich a und b. Die Frage ist vermutlich, warum wir das Ergebnis nicht einfach im zweiten Array b belassen, sondern die Werte am Ende noch umständlich nach a zurück kopieren. Bitte bedenken Sie aber, dass man Merge mehrmals in verschiedenen Rekursionsebenen aufruft. Damit das dann noch alles korrekt funktioniert, müsste man ein wenig tricksen: In jeder zweiten Ebene sortiert man die Werte z.B. von a nach b und in den restlichen Ebenen die Werte von b nach a. Wenn man das schafft, kann man MergeSort tatsächlich ziemlich schnell machen. Insgesamt wird der Algorithmus dadurch aber komplizierter; darum habe ich mich hier dafür entschieden, einfach b nach a zu kopieren.

  • @abilas3540
    @abilas3540 Рік тому

    🤣🤣🤣🤣🤣😂😂🤣🤣🤣