কম্পিউটার টিউটোরিয়াল

C# ব্যবহার করে সোর্টেড অ্যারেতে রিকার্সনের মাধ্যমে অ্যারে কতবার রোটেট হয়েছে তা খুঁজে বের করার পদ্ধতি


মিড এলিমেন্টের ইনডেক্স (ন্যূনতম এলিমেন্ট) খুঁজে বের করুন। তারপর নিম্নলিখিত শর্তাবলীর উপর ভিত্তি করে সাবঅ্যারেতে বাইনারি সার্চ প্রয়োগ করুন:

  • যদি সংখ্যাটি শুরুতের এলিমেন্ট এবং mid1 পজিশনের এলিমেন্টের মধ্যে থাকে।

  • তাহলে অ্যারে শুরু থেকে mid-1 পর্যন্ত বাইনারি সার্চ দিয়ে সংখ্যাটি খুঁজুন।

  • অথবা যদি সংখ্যাটি mid এবং শেষ এলিমেন্টের মধ্যে থাকে, তবে mid থেকে শেষ এলিমেন্ট পর্যন্ত বাইনারি সার্চ দিয়ে খুঁজুন।

উদাহরণ

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#-এ রিকার্শন ব্যবহার করে সংখ্যার ডিজিটগুলোর যোগফল বের করা

  3. পাইথনে রিকার্শন ব্যবহার করে একটি সংখ্যার ঘাত (Power) বের করা

  4. Python-এ একটি সংখ্যার ফ্যাক্টোরিয়াল (Factorial) বের করা