Java und .NET: Warum werden standardmäßig unterschiedliche Sortieralgorithmen verwendet? [geschlossen]

9

Ich frage mich nur, warum Java und .NET Framework standardmäßig einen anderen Sortieralgorithmus verwenden.

In Java verwendet Array.Sort() standardmäßig den Merge-Sort -Algorithmus und Wikipedia.com sagt:

  

In Java verwenden die Arrays.sort () Methoden merge sort oder tuned   quicksort abhängig von den Datentypen und für die Implementierungseffizienz   Wechseln Sie zur Einfügesortierung, wenn weniger als sieben Arrayelemente vorhanden sind   sortiert werden

In .NET Framework Array.Sort/List.Sort() verwendet Schnellsortierung als Standardsortieralgorithmus (< a href="http://msdn.microsoft.com/en-us/library/b0zbh7b6.aspx"> MSDN ):

  

List.Sort () verwendet Array.Sort, das den QuickSort-Algorithmus verwendet. Dies   Implementierung führt eine instabile Sortierung durch; das heißt, wenn zwei Elemente sind   gleich, ihre Reihenfolge wird möglicherweise nicht beibehalten. Im Gegensatz dazu eine stabile Sortierung   bewahrt die Reihenfolge der Elemente, die gleich sind.

Wenn wir uns die große "Vergleich von Algorithmen" Tabelle anschauen, können wir sehen, dass beide Algorithmen ziemlich unterschiedliche Verhaltensweisen haben aus Worst Case und Memory Usage Perspektiven:

Sowohl Java als auch .NET sind großartige Frameworks für die Entwicklung von Enterprise-Lösungen, beide haben Plattformen für die Embedded-Entwicklung. Warum also verwenden sie standardmäßig einen anderen Sortieralgorithmus, irgendwelche Gedanken?

BEARBEITEN: Ich sehe, dass zwei Personen bereits abgestimmt haben, um diese Frage als nicht konstruktiv zu schließen. Ich glaube, dass Java und .NET die beliebtesten Entwicklungs-Frameworks sind, so dass es wirklich interessant wäre, irgendwelche nicht-trivialen und interessanten Gedanken, vielleicht Fakten, zu einer solchen Entscheidung zu finden.

    
sll 15.09.2011, 19:45
quelle

1 Antwort

4

Verschiedene Entwicklungsteams in zwei verschiedenen Unternehmen kamen zu unterschiedlichen Schlussfolgerungen hinsichtlich des üblichen Anwendungsfalls für ihre Frameworks und Komponenten und haben beschlossen, dies entsprechend umzusetzen.

    
Oded 15.09.2011, 19:47
quelle