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

C#-এ রিকার্শন ব্যবহার করে কুইক সোর্ট (Quick Sort)

কুইক সোর্ট (Quick Sort) হল একটি সোর্টিং অ্যালগরिदম যা ভাগ করুন ও জিতুন (divide and conquer) পদ্ধতি ব্যবহার করে। এটি একটি পিভট (pivot) এলিমেন্ট নেয় এবং সেটিকে তার সঠিক অবস্থানে রাখে। তারপর পিভট এলিমেন্টের বাম ও ডানের অ্যারে আবার কুইক সোর্ট ব্যবহার করে সাজানো হয়। এটি পুরো অ্যারেটি সাজানো পর্যন্ত চলতে থাকে।

উদাহরণ

using System; 
namespace QuickSortDemo { 
    class Example { 
        static public int Partition(int[] arr, int left, int right) { 
            int pivot; 
            pivot = arr[left]; 
            while (true) { 
                while (arr[left] < pivot) { 
                    left++; 
                } 
                while (arr[right] > pivot) { 
                    right--; 
                } 
                if (left < right) { 
                    int temp = arr[right]; 
                    arr[right] = arr[left]; 
                    arr[left] = temp; 
                } else { 
                    return right; 
                } 
            } 
        } 
        static public void quickSort(int[] arr, int left, int right) { 
            int pivot; 
            if (left < right) { 
                pivot = Partition(arr, left, right); 
                if (pivot > 1) { 
                    quickSort(arr, left, pivot - 1); 
                } 
                if (pivot + 1 < right) { 
                    quickSort(arr, pivot + 1, right); 
                } 
            } 
        } 
        static void Main(string[] args) { 
            int[] arr = {67, 12, 95, 56, 85, 1, 100, 23, 60, 9}; 
            int n = 10, i; 
            Console.WriteLine("Quick Sort"); 
            Console.Write("Initial array is: "); 
            for (i = 0; i < n; i++) { 
                Console.Write(arr[i] + " "); 
            } 
            quickSort(arr, 0, 9); 
            Console.Write("\nSorted Array is: "); 
            for (i = 0; i < n; i++) { 
                Console.Write(arr[i] + " "); 
            } 
        } 
    } 
}

আউটপুট

Quick Sort 
Initial array is: 67 12 95 56 85 1 100 23 60 9 
Sorted Array is: 1 9 12 23 56 60 67 85 95 100

প্রোগ্রাম ব্যাখ্যা

Main() ফাংশনে, প্রথমে প্রাথমিক অ্যারেটি প্রদর্শন করা হয়। তারপর quickSort() ফাংশনটি কল করা হয় অ্যারেটি সাজানোর জন্য।

quickSort() ফাংশনে, Partition() ফাংশন কল করে একটি পিভট এলিমেন্ট নির্বাচন করা হয়। তারপর quickSort() আবার কল করা হয় আর্গুমেন্টসহ যা পিভটের মান पर নির্ভর করে।

Partition() ফাংশনে, পিভট এলিমেন্টটি প্রদত্ত অ্যারেতের বামে nhất এলিমেন্ট হিসেবে নির্বাচন করা হয় এবং তারপর সেটিকে অ্যারেতে তার সঠিক অবস্থানে সেট করা হয়।

  1. মার্জ সোর্ট ব্যবহার করে অ্যারে সোর্ট করার সি প্রোগ্রাম

  2. C প্রোগ্রাম: রিকার্শন ব্যবহার করে বাইনারি থেকে গ্রে কোড কনভার্সন

  3. C প্রোগ্রাম: রিকার্শন ব্যবহার করে অ্যারে প্যালিনড্রোম কিনা চেক করা

  4. পাইথন প্রোগ্রাম: রিকার্শন ব্যবহার করে স্ট্রিং রিভার্স করা