Go में एल्गोरिदम और डेटा संरचनाएँ: शुरुआती लोगों के लिए गाइड

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

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

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

Go में एल्गोरिदम और डेटा संरचनाओं का परिचय

\n\n

Go (Golang) एक आधुनिक कंपाइल्ड प्रोग्रामिंग भाषा है, जिसे Google में विकसित किया गया है। यह C++ की प्रदर्शन क्षमता को Python की सरलता के साथ जोड़ती है, जो इसे एल्गोरिदम और डेटा संरचनाओं को सीखने के लिए एक आदर्श विकल्प बनाती है। इस लेख में, हम मूलभूत अवधारणाओं पर चर्चा करेंगे जो आपको Go में कुशल कोड लिखना शुरू करने में मदद करेंगी।

\n\n

डेटा संरचनाओं और एल्गोरिदम को समझना किसी भी डेवलपर के लिए एक महत्वपूर्ण कौशल है। वे डेटा को कुशलतापूर्वक व्यवस्थित करने और समस्याओं को इष्टतम तरीके से हल करने में सक्षम बनाते हैं। Go शक्तिशाली अंतर्निहित प्रकार प्रदान करता है, जैसे slices और map, लेकिन बुनियादी संरचनाओं का ज्ञान आपको अधिक जटिल समाधान बनाने में मदद करेगा।

\n\n

Go में मुख्य डेटा संरचनाएँ

\n\n

Arrays और Slices

\n\n

Go में arrays की एक निश्चित लंबाई होती है, जबकि slices गतिशील होते हैं। Slices अधिक लचीला उपकरण हैं, जिनका सबसे अधिक उपयोग किया जाता है।

\n\n
package main\n\nimport "fmt"\n\nfunc main() {\n    // निश्चित लंबाई का array\n    var arr [5]int = [5]int{1, 2, 3, 4, 5}\n    fmt.Println("Array:", arr)\n\n    // Slice — गतिशील array\n    slice := []int{10, 20, 30, 40, 50}\n    fmt.Println("Slice:", slice)\n\n    // Slice में तत्व जोड़ना\n    slice = append(slice, 60)\n    fmt.Println("append के बाद Slice:", slice)\n\n    // Array के भाग से slice\n    subSlice := arr[1:4]\n    fmt.Println("उप-Slice:", subSlice)\n}
\n\n

Go में slices अंतर्निहित array का संदर्भ हैं। उनमें पहले तत्व का पॉइंटर, लंबाई और क्षमता होती है। यह उन्हें डेटा अनुक्रमों के साथ काम करने के लिए बहुत कुशल बनाता है।

\n\n

Go में Stack

\n\n

Stack एक डेटा संरचना है जो LIFO (Last In, First Out) सिद्धांत पर काम करती है। Go में, slice का उपयोग करके stack को आसानी से लागू किया जा सकता है।

\n\n
package main\n\nimport (\n    "fmt"\n    "errors"\n)\n\ntype Stack []int\n\nfunc (s *Stack) Push(v int) {\n    *s = append(*s, v)\n}\n\nfunc (s *Stack) Pop() (int, error) {\n    if len(*s) == 0 {\n        return 0, errors.New("stack खाली है")\n    }\n    index := len(*s) - 1\n    element := (*s)[index]\n    *s = (*s)[:index]\n    return element, nil\n}\n\nfunc main() {\n    var stack Stack\n    \n    stack.Push(1)\n    stack.Push(2)\n    stack.Push(3)\n    \n    for len(stack) > 0 {\n        val, err := stack.Pop()\n        if err == nil {\n            fmt.Println("निकाला गया:", val)\n        }\n    }\n}
\n\n

Stack का उपयोग ट्री ट्रैवर्सल एल्गोरिदम, ब्रैकेट जाँच, क्रिया पूर्ववत (undo) और एक्सप्रेशन पार्सिंग में किया जाता है।

\n\n

Go में Queue

\n\n

Queue FIFO (First In, First Out) सिद्धांत पर काम करता है। Go में, इसे slice या doubly linked list का उपयोग करके लागू किया जा सकता है।

\n\n
package main\n\nimport "fmt"\n\ntype Queue []int\n\nfunc (q *Queue) Enqueue(v int) {\n    *q = append(*q, v)\n}\n\nfunc (q *Queue) Dequeue() (int, bool) {\n    if len(*q) == 0 {\n        return 0, false\n    }\n    element := (*q)[0]\n    *q = (*q)[1:]\n    return element, true\n}\n\nfunc main() {\n    queue := Queue{}\n    \n    queue.Enqueue(10)\n    queue.Enqueue(20)\n    queue.Enqueue(30)\n    \n    for len(queue) > 0 {\n        val, ok := queue.Dequeue()\n        if ok {\n            fmt.Println("निकाला गया:", val)\n        }\n    }\n}
\n\n

Queue का उपयोग कार्य प्रबंधन प्रणालियों, डेटा बफरिंग और ब्रेड्थ-फर्स्ट सर्च (BFS) एल्गोरिदम में किया जाता है।

\n\n

बुनियादी सॉर्टिंग और सर्च एल्गोरिदम

\n\n

Bubble Sort

\n\n

एक सरल सॉर्टिंग एल्गोरिदम जो बार-बार array में घूमता है, आसन्न तत्वों की तुलना करता है और यदि वे गलत क्रम में हैं तो उन्हें बदल देता है।

\n\n
package main\n\nimport "fmt"\n\nfunc bubbleSort(arr []int) {\n    n := len(arr)\n    for i := 0; i < n-1; i++ {\n        for j := 0; j < n-i-1; j++ {\n            if arr[j] > arr[j+1] {\n                arr[j], arr[j+1] = arr[j+1], arr[j]\n            }\n        }\n    }\n}\n\nfunc main() {\n    data                

ब्लॉग

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