C# में एल्गोरिदम और डेटा संरचनाएँ: एक व्यावहारिक मार्गदर्शिका

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

C# में एल्गोरिदम और डेटा संरचनाएँ: सिद्धांत से अभ्यास तक



C# में एल्गोरिदम और डेटा संरचनाओं की समझ पेशेवर विकास की नींव है। चाहे आप ASP.NET Core पर उच्च-लोड वाला वेब एप्लिकेशन लिख रहे हों या WPF पर डेस्कटॉप एप्लिकेशन, सही डेटा संरचना और कुशल एल्गोरिदम का चुनाव सीधे कोड के प्रदर्शन, पठनीयता और स्केलेबिलिटी को प्रभावित करता है। इस लेख में, हम C# कोड के विशिष्ट उदाहरणों के साथ प्रमुख डेटा संरचनाओं और एल्गोरिदम का विश्लेषण करेंगे, जिन्हें आप तुरंत अपने प्रोजेक्ट्स में लागू कर सकते हैं।



1. C# में स्टैक (Stack) और क्यू (Queue)



स्टैक (LIFO — लास्ट इन, फर्स्ट आउट) और क्यू (FIFO — फर्स्ट इन, फर्स्ट आउट) मूलभूत डेटा संरचनाएँ हैं जो .NET में निर्मित हैं और वास्तविक कार्यों में व्यापक रूप से उपयोग की जाती हैं: मेथड कॉल प्रोसेसिंग से लेकर टास्क प्रबंधन तक।



C# में स्टैक

स्टैक का उपयोग अक्सर क्रियाओं के "पूर्ववत" (undo) या सिंटैक्स विश्लेषण को लागू करने के लिए किया जाता है। C# में, स्टैक को Stack<T> क्लास द्वारा दर्शाया जाता है।

using System;using System.Collections.Generic;

public class StackExample{ public static void Main() { Stack<string> browserHistory = new Stack<string>(); // तत्व जोड़ना (Push) browserHistory.Push("मुख्य पृष्ठ"); browserHistory.Push("समाचार"); browserHistory.Push("C# पर लेख"); Console.WriteLine($"अंतिम पृष्ठ: {browserHistory.Peek()}"); // C# पर लेख // शीर्ष तत्व को हटाना और वापस करना (Pop) string lastPage = browserHistory.Pop(); Console.WriteLine($"से वापस आ रहे हैं: {lastPage}"); // C# पर लेख Console.WriteLine($"वर्तमान पृष्ठ: {browserHistory.Peek()}"); // समाचार }}


C# में क्यू

क्यू उनके आने के क्रम में कार्यों को संसाधित करने के लिए आदर्श है (उदाहरण के लिए, प्रिंट क्यू या संदेश प्रसंस्करण)। Queue<T> क्लास का उपयोग करें।

using System;using System.Collections.Generic;

public class QueueExample{ public static void Main() { Queue<string> printQueue = new Queue<string>(); // क्यू के अंत में जोड़ना (Enqueue) printQueue.Enqueue("दस्तावेज़1.pdf"); printQueue.Enqueue("फोटो.png"); printQueue.Enqueue("रिपोर्ट.docx"); Console.WriteLine($"प्रिंट करने वाला पहला: {printQueue.Peek()}"); // दस्तावेज़1.pdf // क्यू की शुरुआत से हटाना (Dequeue) string firstJob = printQueue.Dequeue(); Console.WriteLine($"प्रिंट हो रहा है: {firstJob}"); // दस्तावेज़1.pdf Console.WriteLine($"अगला: {printQueue.Peek()}"); // फोटो.png }}


महत्वपूर्ण: .NET में मल्टी-थ्रेडेड परिदृश्यों के लिए ConcurrentQueue<T> भी है और Stack<T> इंडेक्स एक्सेस का समर्थन नहीं करता है — केवल शीर्ष को।



2. ऐरे सॉर्टिंग: क्विक सॉर्ट (QuickSort)



हालाँकि C# में एक अंतर्निहित Array.Sort() मेथड है, साक्षात्कार और अनुकूलन के लिए सॉर्टिंग एल्गोरिदम की समझ आवश्यक है। क्विक सॉर्ट औसत मामले में O(n log n) जटिलता वाले सबसे कुशल एल्गोरिदम में से एक है।



using System;

public class QuickSortExample{ public static void QuickSort(int[] arr, int left, int right) { if (left < right) { int pivotIndex = Partition(arr, left, right); QuickSort(arr, left, pivotIndex - 1); QuickSort(arr, pivotIndex + 1, right); } }

private static int Partition(int[] arr, int left, int right) { int pivot = arr[right]; // पिवट तत्व — अंतिम int i = left - 1;

for (int j = left; j < right; j++) { if (arr[j] < pivot) { i++;

ब्लॉग

पुस्तक अनुशंसाएँ