¿Por qué procesar un array ordenado es más rápido que uno desordenado?
¡Hola a todos! Soy un desarrollador principiante de C++ y me encontré con un problema muy extraño al optimizar código. Tengo un bucle simple que suma los elementos de un array, pero solo aquellos que superan un cierto umbral. Noté que si el array está ordenado, el código se ejecuta varias veces más rápido que si no lo está. Aquí hay un ejemplo de código:
```cpp
#include
#include
#include
#include
int main() {
const int SIZE = 100000;
std::vector data(SIZE);
// Llenamos el array con números aleatorios
for (int i = 0; i < SIZE; ++i) {
data[i] = rand() % 256;
}
// Ordenamos el array para la primera prueba
std::vector sorted_data = data;
std::sort(sorted_data.begin(), sorted_data.end());
long long sum_sorted = 0;
long long sum_unsorted = 0;
// Medimos el tiempo para el array ordenado
auto start = std::chrono::high_resolution_clock::now();
for (int i =
No answers yet.
Inicia sesión para dejar una respuesta
Blogs
Docker y PHP: Contenerización de aplicaciones — Guía completa
Clean Code en C#: principios para escribir código legible con ejemplos
Caché en Kotlin: Redis, Memcached y soluciones integradas
Docker y Rust: contenedorización de aplicaciones de la A a la Z