Avatar ·

Warum ist die Verarbeitung eines sortierten Arrays schneller als die eines unsortierten?

Hallo zusammen. Ich lerne C++ und bin auf ein seltsames Performance-Verhalten gestoßen. Ich habe ein einfaches Programm geschrieben, das die Elemente eines Arrays summiert, aber nur, wenn sie größer als ein bestimmter Schwellenwert (z.B. 128) sind. Ich habe die Ausführungszeit für ein sortiertes und ein unsortiertes Array gemessen – und die Ergebnisse haben mich schockiert. Hier ist der Code: ```cpp #include #include #include #include int main() { const int SIZE = 100000; std::vector data(SIZE); // Befüllen mit Zufallszahlen for (int i = 0; i < SIZE; ++i) { data[i] = rand() % 256; } // Kopie für den unsortierten Fall std::vector unsorted = data; std::vector sorted = data; std::sort(sorted.begin(), sorted.end()); ```