क्रमबद्ध ऐरे को अनक्रमबद्ध ऐरे की तुलना में तेज़ी से प्रोसेस क्यों किया जाता है?
सभी को नमस्कार। मैं C++ सीख रहा हूँ और मुझे प्रदर्शन का एक अजीब व्यवहार मिला। मैंने एक सरल प्रोग्राम लिखा जो ऐरे के तत्वों का योग करता है, लेकिन केवल तभी जब वे एक निश्चित सीमा (जैसे, 128) से अधिक हों। मैंने क्रमबद्ध और अनक्रमबद्ध ऐरे के लिए निष्पादन समय मापा — और परिणामों ने मुझे चौंका दिया।
यहाँ कोड है:
```cpp
#include
#include
#include
#include
int main() {
const int SIZE = 100000;
std::vector data(SIZE);
// रैंडम संख्याओं से भरें
for (int i = 0; i < SIZE; ++i) {
data[i] = rand() % 256;
}
// अनक्रमबद्ध मामले के लिए कॉपी
std::vector unsorted = data;
std::vector sorted = data;
std::sort(sorted.begin(), sorted.end());
long long sum = 0;
auto start = std::chrono::high_resolution_clock::now();
for (int i = 0; i < SIZE; ++i) {
if (sorted[i] >= 128) {
sum += sorted[i];
}