सॉर्ट किए गए ऐरे को प्रोसेस करना अनसॉर्टेड ऐरे से तेज़ क्यों होता है?
सभी को नमस्ते! मैं एक शुरुआती C++ डेवलपर हूँ और कोड ऑप्टिमाइज़ेशन के दौरान एक बहुत ही अजीब समस्या का सामना किया। मेरे पास एक सरल loop है जो ऐरे के elements को sum करता है, लेकिन केवल वे जो एक निश्चित threshold से बड़े हैं। मैंने देखा कि अगर ऐरे सॉर्ट किया गया है, तो कोड अनसॉर्टेड ऐरे की तुलना में कई गुना तेज़ चलता है। यहाँ कोड का उदाहरण है:
```cpp
#include
#include
#include
#include
int main() {
const int SIZE = 100000;
std::vector data(SIZE);
// ऐरे को रैंडम numbers से भरें
for (int i = 0; i < SIZE; ++i) {
data[i] = rand() % 256;
}
// पहले test के लिए ऐरे को सॉर्ट करें
std::vector sorted_data = data;
std::sort(sorted_data.begin(), sorted_data.end());
long long sum_sorted = 0;
long long sum_unsorted = 0;
// सॉर्ट किए गए ऐरे के लिए समय मापें
auto start = std::chrono::high_resolution_clock::now();
for (int i =