Ich bin verwirrt, wenn diese Vergleichszahlen so groß in Wert für einen Vektor mit 100 zufälligen zweistelligen Zahlen sein sollen. Volles Programm -> sicherer Link: https://ideone.com/oybDbD Die Programmausgabe befindet sich auf der unteren Seite des Links. Wertschätze schätzen.Einfügevergleich #s scheinen zu groß
int insertionSort (vector<int> &v) {
int j, temp, counter = 0;
for (int i = 1; i < v.size(); i++) {
j = i;
while (++counter && j > 0 && v[j] < v[j-1]){
temp = v[j];
v[j] = v[j-1];
v[j-1] = temp;
j--;
}
}
return counter;
}
Nur um zu klären, ist die erwartete Anzahl von Vergleichen für Insertion sort 10, 000? Danke für Ihre Hilfe :) – Lightypulse
@Lightypulse: Nicht ganz. Die durchschnittliche Anzahl der Vergleiche ist "O (N^2)", was in diesem Fall zu "O (10000)" führt. Erwartungswerte kommen in Statistiken, was ein anderes Ballspiel ist. Ich entschuldige mich für die Unklarheit dort. Auch [diese Antwort] (https://stackoverflow.com/questions/17055341/why-is-insertion-sort-%CE%98n2-in-the-average-case) kann Ihnen helfen, besser zu verstehen, was vor sich geht. – Richard
@Lightypulse: Wenn meine Antwort hilfreich für Sie gewesen ist, zögern Sie nicht, zu upvote oder akzeptieren Sie es, indem Sie auf die Pfeile oder Häkchen klicken. – Richard