MergeSort

Поділитися
Вставка
  • Опубліковано 16 гру 2024

КОМЕНТАРІ • 18

  • @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! :)

  • @derechte6086
    @derechte6086 7 місяців тому +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 6 місяців тому +1

    Sie retten mein Studium! Danke vielmals:D

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

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

  • @ben-zk6jb
    @ben-zk6jb 5 місяців тому

    In welchem Video finde ich die Erklärung wieso die Laufzeit O(n * log n ) ist? Tolle Arbeit die sie hier hochladen, die Videos sind eine riesige Hilfe!

  • @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.

  • @prad247-w7f
    @prad247-w7f Рік тому

    echt krass,danke sehr

  • @snouzz-gaming
    @snouzz-gaming 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

  • @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?

  • @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.

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

    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  2 роки тому +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 2 роки тому

    🤣🤣🤣🤣🤣😂😂🤣🤣🤣