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());
```
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen