কম্পিউটার

একটি কেস প্রিন্ট করুন যেখানে প্রদত্ত বাছাই অ্যালগরিদম C++ এ ব্যর্থ হয়


এই সমস্যায়, আমাদের একটি সাজানোর অ্যালগরিদম এবং একটি সংখ্যা n দেওয়া হয়েছে। আমাদের কাজ হল n উপাদানগুলির একটি অ্যারে প্রিন্ট করা যা অ্যালগরিদম দ্বারা সাজানো যায় না। অর্থাৎ অ্যালগরিদম ব্যর্থ হবে৷

অ্যালগরিদম

loop i from 1 to n-1
   loop j from i to n-1
   if a[j]>a[i+1]
      swap(a[i], a[j+1])

আসুন এই সাজানোর অ্যালগরিদমটি দেখুন, এটি দুটি নেস্টেড লুপ ব্যবহার করছে। বাইরেরটি 1 থেকে n-1 থেকে শুরু হবে এবং ভিতরেরটি i থেকে n-1 পর্যন্ত হবে এবং প্রতিটি পুনরাবৃত্তিতে অভ্যন্তরীণ লুপ উপাদান এবং বাইরের লুপ উপাদানগুলির মান পরীক্ষা করবে এবং অর্ডারের উপাদানগুলির অদলবদল করবে৷

সুতরাং এই অ্যালগরিদম এমন ক্ষেত্রে ব্যর্থ হবে যেখানে উপাদানগুলি বিপরীত ক্রমে সাজানো হয়৷ এছাড়াও, আমরা তখনই একটি সমাধান খুঁজে পেতে পারি যখন n<=2.

So, for n = 5.
Output : 5 4 3 2 1
Time complexity − O(N)

উদাহরণ

আমাদের সমাধানের বাস্তবায়ন দেখানোর কোড

#include <iostream>
using namespace std;
void invalidCase(int n) {
   if (n <= 2) {
      cout << -1;
      return;
   }
   for (int i = n; i >= 1; i--)
      cout<<i<<" ";
}
int main() {
   int n = 6;
   cout<<"The case in which the algorithm goes invalid for "<<n<<" element array is :\n";
   invalidCase(n);
   return 0;
}

আউটপুট

যে ক্ষেত্রে অ্যালগরিদমটি 6 উপাদান অ্যারের জন্য অবৈধ হয়ে যায় তা হল −

6 5 4 3 2 1

  1. C++ এ প্রদত্ত স্ট্রিংয়ে স্বরবর্ণের জোড়া গণনা করুন

  2. C++ এ একটি প্রদত্ত পরিসরে 'M' দ্বারা বিভাজ্য সংখ্যাগুলি গণনা করুন

  3. C++ এ প্রদত্ত পরিসরের [L, R] সমস্ত উপাদানের XOR

  4. একটি প্রদত্ত ম্যাট্রিক্স C++ এ ঘড়ির কাঁটার বিপরীতে সর্পিল আকারে প্রিন্ট করুন