কম্পিউটার

কেন C++ এ একটি সাজানো বিন্যাসের চেয়ে একটি সাজানো অ্যারে প্রক্রিয়া করা দ্রুত?


C++ এ, শাখার পূর্বাভাসের কারণে একটি সাজানো বিন্যাসের চেয়ে সাজানো অ্যারে প্রক্রিয়া করা দ্রুততর। কম্পিউটার আর্কিটেকচারে, একটি শাখার পূর্বাভাস নির্ধারণ করে যে একটি প্রোগ্রামের নির্দেশ প্রবাহে একটি শর্তসাপেক্ষ শাখা (জাম্প) নেওয়ার সম্ভাবনা আছে কি না৷

আসুন একটি উদাহরণ নেওয়া যাক −

if(arr[i] > 50) {
   Do some operation B
} else {
   Do some operation A
}

যদি আমরা এই কোডটি 100টি উপাদানের জন্য সাজানো এবং সাজানো ক্রমানুসারে চালাই তাহলে নিচের জিনিসগুলি ঘটবে −

বাছাই করা অ্যারের জন্য −

1, 2, 3, 4, 5, …… 50, 51………100
A, A, A, A, A A, B B

এটি পাইপলাইনে সঠিক শাখা এবং সঠিক ক্রম লোড করবে

A, A, A, A, A, A, A, A A, B B

বিন্যস্ত বিন্যাসের জন্য −

5, 51, 6, 90, 4, 49, 60…
A, B, A, B, A, A, A, B

শাখা ভবিষ্যদ্বাণী এখানে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে না। A এবং B এর মধ্যে সঠিক অপারেশনের পূর্বাভাস দেওয়া খুবই কঠিন।


  1. C++ এ সাজানো ক্রমে দুটি সাজানো না করা অ্যারেকে একত্রিত করা।

  2. C++ এ একটি সাজানো অ্যারেতে পরম স্বতন্ত্র গণনা?

  3. কেন C++ প্রোগ্রামে একটি সাজানো বিন্যাসের চেয়ে একটি সাজানো অ্যারে প্রক্রিয়া করা দ্রুত?

  4. সাজানো অ্যারে বাস্তবায়নের জন্য C++ প্রোগ্রাম