কম্পিউটার

সি# ব্যবহার করে পুনরাবৃত্তির মাধ্যমে সাজানো অ্যারেতে কতবার অ্যারে ঘোরানো হয়েছে তা কীভাবে খুঁজে পাবেন?


মধ্য উপাদানের সূচী খুঁজুন (ন্যূনতম উপাদান) নিম্নলিখিত শর্তগুলির উপর ভিত্তি করে সাবয়ারেতে বাইনারি অনুসন্ধান প্রয়োগ করুন -

  • যদি সংখ্যাটি স্টার্ট এলিমেন্ট এবং এলিমেন্টের মাঝামাঝি 1 অবস্থানে থাকে।

  • তারপর বাইনারি সার্চ

    ব্যবহার করে অ্যারে থেকে শুরু করে মধ্য-1 পর্যন্ত নম্বর খুঁজুন
  • অন্যথায় যদি সংখ্যাটি মধ্য এবং শেষ উপাদানের মধ্যে থাকে, তাহলে বাইনারি অনুসন্ধান ব্যবহার করে মধ্য থেকে শেষ উপাদানের অ্যারেতে সংখ্যা খুঁজুন৷

উদাহরণ

using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
namespace ConsoleApplication{
   public class Arrays{
      public int FindNumberRotated(int[] array, int start, int end, int value){
         if (start > end){
            return -1;
         }
         int mid = (start + end) / 2;
         if (array[mid] == value){
            return mid;
         }
         if (array[start] <= array[mid]){
            if (value >= array[start] && value <= array[mid]){
               return FindNumberRotated(array, start, mid - 1, value);
            }
            return FindNumberRotated(array, mid + 1, end, value);
         }
         if (value >= array[mid] && value <= array[end]){
            return FindNumberRotated(array, mid + 1, end, value);
         }
         return FindNumberRotated(array, start, mid - 1, value);
      }
   }
   class Program{
      static void Main(string[] args){
         Arrays a = new Arrays();
         int[] arr = { 3, 4, 5, 6, 7, 8, 9, 10, 1, 2 };
         int res = a.FindNumberRotated(arr, 0, arr.Length - 1, 1);
         Console.WriteLine(res);
      }
   }
}

আউটপুট

8

No
  1. আপনি কিভাবে C# এ একটি অ্যারের মাত্রার সংখ্যা খুঁজে পাবেন?

  2. C# প্রোগ্রাম Recursion ব্যবহার করে একটি সংখ্যার অঙ্কের যোগফল খুঁজে বের করতে

  3. পাইথনে পুনরাবৃত্তি ব্যবহার করে একটি সংখ্যার শক্তি কীভাবে খুঁজে পাবেন?

  4. পাইথন ব্যবহার করে কিভাবে একটি সংখ্যার ফ্যাক্টরিয়াল খুঁজে বের করবেন?