Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C#

सी # प्रोग्राम रिकर्सन का उपयोग कर त्वरित सॉर्ट करने के लिए


त्वरित छँटाई एक छँटाई एल्गोरिथ्म है जो विभाजित और जीत विधि का उपयोग करता है। यह एक धुरी तत्व लेता है और उसे उसकी सही स्थिति में रखता है। फिर पिवट एलीमेंट के बाएँ और दाएँ ऐरे को क्विक सॉर्ट का उपयोग करके फिर से सॉर्ट किया जाता है। यह तब तक किया जाता है जब तक कि पूरी सरणी क्रमबद्ध न हो जाए।

एक प्रोग्राम जो C# में रिकर्सन का उपयोग करके त्वरित सॉर्ट को प्रदर्शित करता है, वह इस प्रकार दिया गया है -

उदाहरण

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

आइए अब उपरोक्त कार्यक्रम को समझते हैं।

मुख्य () फ़ंक्शन में, पहले प्रारंभिक सरणी प्रदर्शित होती है। फिर, फ़ंक्शन QuickSort () को सरणी पर त्वरित सॉर्ट करने के लिए कहा जाता है। इसके लिए कोड स्निपेट इस प्रकार दिया गया है -

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);

फ़ंक्शन QuickSort () में, विभाजन () फ़ंक्शन को कॉल करके एक धुरी तत्व का चयन किया जाता है। फिर QuickSort () को फिर से तर्कों के साथ बुलाया जाता है जो धुरी के मूल्य पर निर्भर करते हैं। इसके लिए कोड स्निपेट इस प्रकार दिया गया है -

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);
   }
}

पार्टिशन () फ़ंक्शन में, पिवट तत्व को प्रदान की गई सरणी के सबसे बाएं तत्व के रूप में चुना जाता है और फिर इसे सरणी में इसकी सही स्थिति पर सेट किया जाता है। इसके लिए सभी चरणों को प्रदर्शित करने वाला कोड स्निपेट इस प्रकार दिया गया है।

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;
   }
}

  1. सी प्रोग्राम मर्ज सॉर्ट का उपयोग करके एक सरणी को सॉर्ट करने के लिए

    एक सरणी संबंधित डेटा आइटम का एक समूह है जो एक सामान्य नाम साझा करता है। किसी सरणी में किसी विशेष मान की पहचान उसके इंडेक्स नंबर की सहायता से की जाती है। सरणी घोषित करना एक सरणी घोषित करने के लिए वाक्य रचना इस प्रकार है - datatype array_name [size]; उदाहरण के लिए, float marks [50] यह 50 फ्लोट तत्व

  1. सी प्रोग्राम में रिकर्सन का उपयोग करके बाइनरी टू ग्रे कोड

    बाइनरी नंबर एक ऐसी संख्या है जिसमें केवल दो बिट 0 और 1 होते हैं। ग्रे कोड एक विशेष प्रकार का बाइनरी नंबर होता है जिसमें एक गुण होता है जो कोड की लगातार दो संख्या . होता है एक बिट से अधिक भिन्न नहीं हो सकता। ग्रे कोड की यह संपत्ति इसे और अधिक उपयोगी बनाती है के-मैप्स, त्रुटि सुधार, संचार, आदि। यह ब

  1. सी प्रोग्राम यह जांचने के लिए कि कोई सरणी पैलिंड्रोम है या रिकर्सन का उपयोग नहीं कर रही है

    एक सरणी गिरफ्तारी [एन] को देखते हुए जहां एन एक सरणी का कुछ आकार है, कार्य यह पता लगाना है कि सरणी पालिंड्रोम है या रिकर्सन का उपयोग नहीं कर रही है। पैलिंड्रोम एक अनुक्रम है जिसे पीछे और आगे की तरह पढ़ा जा सकता है, जैसे:मैडम, नमन, आदि। तो एक सरणी की जांच करने के लिए पैलिंड्रोम है या नहीं, इसलिए हम ए