1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Kann jemand mir hilfen? "quicksort mit Vergleichsfunktion.."

  • sulsn
  • 23. Juni 2007 um 18:43
  • Unerledigt
  • sulsn
    2
    sulsn
    Mitglied
    Punkte
    15
    Beiträge
    2
    • 23. Juni 2007 um 18:43
    • #1

    Formuliere den quicksort algorithmus so, dass anstelle der Vergleichsoperatoren eine Vergleichsfunktion verwendet wird, um die Sortierung nach beliebigen Kriterien zu ermöglichen. Verwenden Sie dazu eine Funktion boolean Isbefore (↓x ↓y), die true zurückliefert, falls der Wert x in der Sortierreihenfolge vor dem Wert y steht (entspricht dem < Operatror im Fall einer aufsteigenden Sortierung; fuer x=y ist das Ergebnis false)..
    kann jemand bitte mir hilfen???
    Dank....

  • Plantschkuh!
    24
    Plantschkuh!
    Mitglied
    Reaktionen
    163
    Punkte
    6.173
    Beiträge
    1.181
    • 23. Juni 2007 um 19:11
    • #2

    1. Formuliere den Quicksort-Algorithmus.
    2. Ersetze jedes Vorkommen von 'x < y' durch Isbefore(x, y).
    3. Der Rest ist auch nicht schwerer.

    *plantsch*

  • sulsn
    2
    sulsn
    Mitglied
    Punkte
    15
    Beiträge
    2
    • 24. Juni 2007 um 11:01
    • #3

    Dank für die Antwort!!
    :verycool: , habe ich jetzt ein "quicksort Alg" wie folgend:

    quickSort(a[] ↓m ↓n) {
    if (m==n) { return }
    if (a[m]>a[n]) { a[m] <=> a[n] }
    if (m+1==n) { return }
    k = (m+n) / 2
    if (a[m]>a[k]) {a[m] <=> a[k] }
    if (a[k]>a[n]){a[k] <=> a[n] }
    if (m+2==n) { return }
    x = a[k] // Pivot-Element
    i = m+1; j = n-1
    while (i<=j) {
    while (i<n && a[i]<=x) {
    i = i+1
    while (j>m && a[j]<=x) {
    j = j-1
    }
    if (i<j) {
    a[i] <=> a[j]
    i=i+1;j=j-1
    }
    }//while
    quickSort(a[] ↓m ↓j)
    quickSort(a[] ↓i ↓n)
    }//quickSort

    wie kann den durch IsBefore(x,y)?
    kannst du bitte für mich den formulieren.....
    dank.

  • Patman
    1
    Patman
    Mitglied
    Punkte
    10
    Beiträge
    2
    • 24. Juni 2007 um 18:07
    • #4

    Die "standard"-qSort implementierung sortiert dir eine (numerische) Liste in aufsteigender reihenfolge. Also ist ein hardcodierter check implementiert, der dir zwei Werte miteinander vergleicht: irgendwas in der art wie x<y

    Dieser check soll nunn eben nicht mehr hardcodiert sein, sodnern durch IsBefore (x, y) implementiert werden, damit zu beispiel auch eine Liste von characters absteigend sortiert werden kann.

    Hab mir jetzt den code nicht "wirklich" durchgelesen, bin nur g'schwind drüber, aber vermutlich müsstest du in

    Code
    if (a[m]>a[k]) {a[m] <=> a[k] } 
    if (a[k]>a[n]){a[k] <=> a[n] }


    jeweils a[m]>a[k] durch isBefore (a[k], a[m]) und a[k]>a[n] analog ersetzen. (Ganz und gar ohne Gewähr!)

    P.S.: Bitte nimm das jetzt nicht persönlich, aber wenn dir nicht auffällt, wo im (pseudo-)code der Vergleich zweier variablen stattfindet, um zu entscheiden, ob diese vertausch werden müssen, solltest du dir viell. noch mal grundlegend Gedanken zum qSort machen, bzw. eigenltich wie dieser funktioniert.

    Wie würdest du folgenden Satz, nicht sinnverändernd, geschlechtsneutral formulieren?
    "Frauen sind die besseren Autofahrer."

    Oder: macht splitting (immer) sinn?
    http://www.bruehlmeier.info/sprachfeminismus.htm

  • Patman
    1
    Patman
    Mitglied
    Punkte
    10
    Beiträge
    2
    • 25. Juni 2007 um 18:48
    • #5

    Hoff' ich hab dich jetzt nicht verschreckt :winking_face:
    War al "guter Ratschlag" und nicht bös' gemeint :wave:

    Wie würdest du folgenden Satz, nicht sinnverändernd, geschlechtsneutral formulieren?
    "Frauen sind die besseren Autofahrer."

    Oder: macht splitting (immer) sinn?
    http://www.bruehlmeier.info/sprachfeminismus.htm

  • Maximilian Rupp 27. Dezember 2024 um 12:05

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung