কম্পিউটার

কেন 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
It will load the correct branch in pipeline and correct sequence 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++ এ একটি সাজানো বিন্যাসের চেয়ে একটি সাজানো অ্যারে প্রক্রিয়া করা দ্রুত?