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

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

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

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

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

\n\n

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

\n\n

1. डायनामिक ऐरे और List<T> के साथ कार्य

\n\n

C# में, मूल डायनामिक ऐरे List<T> वर्ग है। क्लासिक ऐरे के विपरीत, यह तत्वों को जोड़ने पर स्वचालित रूप से विस्तारित होता है। आइए इसके प्रमुख संचालन और सबसे महत्वपूर्ण में से एक - बाइनरी सर्च पर विचार करें।

\n\n

बाइनरी सर्च केवल सॉर्ट किए गए डेटा पर काम करता है। इसकी जटिलता O(log n) है। एल्गोरिदम प्रत्येक चरण पर खोज सीमा को आधा कर देता है।

\n\n
using System;\nusing System.Collections.Generic;\n\npublic class BinarySearchExample\n{\n    public static int BinarySearch(List<int> sortedList, int target)\n    {\n        int left = 0;\n        int right = sortedList.Count - 1;\n\n        while (left <= right)\n        {\n            int mid = left + (right - left) / 2;\n\n            if (sortedList[mid] == target)\n                return mid; // तत्व मिल गया, इंडेक्स लौटाएँ\n            else if (sortedList[mid] < target)\n                left = mid + 1; // दाएँ आधे में खोजें\n            else\n                right = mid - 1; // बाएँ आधे में खोजें\n        }\n        return -1; // तत्व नहीं मिला\n    }\n\n    public static void Main()\n    {\n        var numbers = new List<int> { 2, 5, 8, 12, 16, 23, 38, 45, 56, 67 };\n        int target = 23;\n        int result = BinarySearch(numbers, target);\n        Console.WriteLine(result != -1 ? $"तत्व {target} इंडेक्स {result} पर मिला" : "तत्व नहीं मिला");\n    }\n}
\n\n

यह क्यों महत्वपूर्ण है? List<T> का उपयोग 90% प्रोजेक्ट्स में होता है। इसमें डेटा को तेज़ी से खोजने की क्षमता प्रदर्शन की कुंजी है।

\n\n

2. स्टैक और क्यू: व्यवहार में LIFO और FIFO

\n\n

स्टैक और क्यू स्पष्ट रूप से परिभाषित एक्सेस ऑर्डर वाले कलेक्शन हैं। ये कॉल प्रोसेसिंग, सिंटैक्स विश्लेषण और कार्यों के प्रबंधन में अपरिहार्य हैं।

\n\n

स्टैक (LIFO — Last In, First Out)

\n

इसका उपयोग, उदाहरण के लिए, कोड में ब्रैकेट की शुद्धता की जाँच के लिए किया जाता है।

\n\n
using System;\nusing System.Collections.Generic;\n\npublic class StackExample\n{\n    public static bool IsValidBrackets(string input)\n    {\n        Stack<char> stack = new Stack<char>();\n        foreach (char ch in input)\n        {\n            if (ch == '(' || ch == '{' || ch == '[')\n            {\n                stack.Push(ch);\n            }\n            else if (ch == ')' || ch == '}' || ch == ']')\n            {\n                if (stack.Count == 0) return false;\n\n                char top = stack.Pop();\n                if ((ch == ')' && top != '(') ||\n                    (ch == '}' && top != '{') ||\n                    (ch == ']' && top != '['))\n                {\n                    return false;\n                }\n            }\n        }\n        return stack.Count == 0;\n    }\n\n    public static void Main()\n    {\n        string test1 = "({[]})";\n        string test2 = "({[})";\n        Console.WriteLine($"'{test1}' — सही ब्रैकेट: {IsValidBrackets(test1)}");\n        Console.WriteLine($"'{test2}' — सही ब्रैकेट: {IsValidBrackets(test2)}");\n    }\n}
\n\n

क्यू (FIFO — First In, First Out)

\n

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

\n\n
using System;\nusing System.Collections.Generic;\n\npublic class QueueExample\n{\n    public static void Main()\n    {\n                

ब्लॉग

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