Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

hallo haben uns mit sortieren und suchen beschäftigt, habe nun eine frage:

selection sort (also sortieren durch auswahl) ist nicht abhängig von der ausgangsreihenfolge der zu sortierenden elemnte.

aber warum ist das so?

Geschrieben
selection sort (also sortieren durch auswahl) ist nicht abhängig von der ausgangsreihenfolge der zu sortierenden elemnte.
Du meinst vermutlich, dass die Laufzeitkomplexität von Selection Sort davon unabhängig ist.

aber warum ist das so?
Der Algorithmus profitiert nicht von einer Vorsortierung, weil er in jedem Schritt immer alle verbliebenen unsortierten Elemente durchsuchen muss, um das jeweils nächste kleinste zu finden. Es gibt da keine Möglichkeit, die Suche vorzeitig abzubrechen. Die Anzahl der Vergleiche, die bei Selection Sort stattfinden, ist immer gleich.
Geschrieben

also ich meinte die anzahl von vergleichen beim sortieren durch auswahl

und wenn ich weiss, dass die zu sortierende liste schon fast sortiert ist, d.h. noch wenige ausnahmen,

dann würde ich mich für insertion sort, d.h. sortieren durch einfügen entscheiden, weil doch dieser sortieralgorithmus stabil ist, d.h. die reihenfolge der datensätze, der schlüssel gleich ist nicht verändert wird und der aufwand dann nicht so groß ist weil die liste schon sortiert ist.

kann man das so sagen???

Geschrieben
und wenn ich weiss, dass die zu sortierende liste schon fast sortiert ist, d.h. noch wenige ausnahmen,

dann würde ich mich für insertion sort, d.h. sortieren durch einfügen entscheiden, weil doch dieser sortieralgorithmus stabil ist, d.h. die reihenfolge der datensätze, der schlüssel gleich ist nicht verändert wird und der aufwand dann nicht so groß ist weil die liste schon sortiert ist.

Die erste Begründung ist Unsinn. Wenn du einen stabilen Sortieralgorithmus brauchst, musst du einen stabilen Sortieralgorithmus verwenden, das hat nichts damit zu tun, ob die Folge vorsortiert ist.

Die zweite Begründung passt schon eher. Allerdings benutzt man in der Praxis Selection Sort und Insertion Sort nur für kleine Listen, weil sie O(n^2) haben. Bei größeren Listen benutzt man dann einen der Algorithmen mit O(n log n), wie Quicksort oder Mergesort.

Geschrieben

ach so ok,

also wenn ich weiss das die liste schon fast sortiert ist, also bis auf wenige elemente, dann könnte ich theoretisch insertion sort anwenden, jetzt im allgemeinem fall.

danke

Geschrieben
also wenn ich weiss das die liste schon fast sortiert ist, also bis auf wenige elemente, dann könnte ich theoretisch insertion sort anwenden, jetzt im allgemeinem fall.
Theoretisch kannst du Insertion Sort immer anwenden. Alle Sortieralgorithmen erfüllen ihren Zweck.

Wenn es um die Wahl eines bestimmten Algorithmus geht, ist eine Vorsortierung nur ein Kriterium von vielen. Wichtig ist unter Anderem auch, ob du einen stabilen Algorithmus brauchst, wie groß das zu sortierende Feld ist, wie teuer ein Vergleich in Relation zu einer Vertauschung ist usw.

  • 8 Monate später...
Geschrieben
Bei größeren Listen benutzt man dann einen der Algorithmen mit O(n log n), wie Quicksort oder Mergesort.

Quicksort hat allerdings ein schlechtes Worst-Case Verhalten ( O(n²) ), daher besser Mergesort oder Heapsort...

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