JavaScript में एल्गोरिदम और डेटा संरचनाएँ: Node.js के लिए पूर्ण गाइड

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

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

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

JavaScript (Node.js) में एल्गोरिदम और डेटा संरचनाएँ: बुनियादी से उन्नत तकनीकों तक



एल्गोरिदम और डेटा संरचनाओं की समझ किसी भी डेवलपर के लिए एक मूलभूत कौशल है जो JavaScript, विशेष रूप से Node.js वातावरण में काम करता है। इस ज्ञान के बिना कुशल, स्केलेबल और तेज़ एप्लिकेशन बनाना असंभव है। इस लेख में, हम उन प्रमुख अवधारणाओं पर चर्चा करेंगे जो आपको अनुकूलित कोड लिखने और तकनीकी साक्षात्कारों में सफलतापूर्वक उत्तीर्ण होने में मदद करेंगी।



Node.js के लिए एल्गोरिदम और डेटा संरचनाएँ क्यों महत्वपूर्ण हैं?



Node.js, V8 इंजन पर निर्मित, सर्वर पर JavaScript निष्पादित करने की अनुमति देता है। यहाँ, ब्राउज़र के विपरीत, प्रदर्शन का महत्वपूर्ण महत्व है: सर्वर एक साथ हजारों अनुरोधों को संसाधित करता है। डेटा संरचना का गलत चयन काम को सैकड़ों गुना धीमा कर सकता है। उदाहरण के लिए, 10,000 प्रविष्टियों वाले ऐरे में किसी तत्व की खोज में 0.1 ms लग सकते हैं, जबकि लिंक्ड लिस्ट में 10 ms लग सकते हैं। अंतर स्पष्ट है।



आपके द्वारा उपयोग की जाने वाली मुख्य डेटा संरचनाएँ:



  • Arrays (ऐरे) — एक बुनियादी लेकिन शक्तिशाली उपकरण। इंडेक्स द्वारा त्वरित पहुँच (O(1)), लेकिन शुरुआत में धीमी इंसर्शन/डिलीट (O(n))।
  • Hash Tables (हैश टेबल) (Object, Map) — "की-वैल्यू" जोड़े को स्टोर करने के लिए आदर्श। संचालन की औसत जटिलता O(1) है।
  • Linked Lists (लिंक्ड लिस्ट) (LinkedList) — सूची के बीच में बार-बार इंसर्शन और डिलीट के लिए कुशल।
  • Stacks and Queues (स्टैक और क्यू) (Stack, Queue) — डेटा स्ट्रीम को संसाधित करने में अपरिहार्य (जैसे, event loop में कार्य)।
  • Trees (ट्री) (Binary Tree, BST) — पदानुक्रमित डेटा और त्वरित खोज के लिए।
  • Graphs (ग्राफ) (Graph) — संबंधों को मॉडल करने के लिए (सोशल नेटवर्क, रूट)।


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



दो क्लासिक समस्याओं पर विचार करें: ऐरे सॉर्टिंग और बाइनरी सर्च। Node.js में, ये एल्गोरिदम बिना किसी तृतीय-पक्ष लाइब्रेरी के सीधे लागू किए जाते हैं।



Quick Sort (क्विक सॉर्ट)



यह औसत जटिलता O(n log n) वाले सबसे कुशल एल्गोरिदम में से एक है। यह "डिवाइड एंड कॉनकर" सिद्धांत पर काम करता है।



function quickSort(arr) {  if (arr.length <= 1) return arr;

const pivot = arr[arr.length - 1]; const left = []; const right = [];

for (let i = 0; i < arr.length - 1; i++) { if (arr[i] < pivot) { left.push(arr[i]); } else { right.push(arr[i]); } }

return [...quickSort(left), pivot, ...quickSort(right)];}

// उपयोग का उदाहरणconst numbers = [34, 7, 23, 32, 5, 62];console.log(quickSort(numbers)); // [5, 7, 23, 32, 34, 62]


Binary Search (बाइनरी सर्च)



सॉर्ट किए गए ऐरे के लिए एल्गोरिदम। जटिलता O(log n) — लीनियर सर्च की तुलना में कहीं अधिक तेज़।



function binarySearch(arr, target) {  let left = 0;  let right = arr.length - 1;

while (left <= right) { const mid = Math.floor((left + right) / 2);

if (arr[mid] === target) return mid; if (arr[mid] < target) left = mid + 1; else right = mid - 1; }

return -1; // तत्व नहीं मिला}

const sortedArray = [1, 3, 5, 7, 9, 11, 13];console.log(binarySearch(sortedArray, 7)); // 3


Hash Tables (हैश टेबल): जब प्रदर्शन मायने रखता है



Node.js में, हैश टेबल बिल्ट-इन ऑब्जेक्ट Map और Object के माध्यम से कार्यान्वित की जाती हैं। वे औसतन O(1) में डेटा तक पहुँच प्रदान करती हैं। हालाँकि, यह समझना महत्वपूर्ण है कि टकराव और प्रदर्शन हानि से कैसे बचा जाए।



उदाहरण: Map का उपयोग करके शब्द आवृत्ति गणना



function countWords(text) {  const wordMap = new Map();  const words = text.toLowerCase().split(/\\W+/);

for (const word of words) { if (word) { wordMap.set(word, (wordMap.get(word) || 0) + 1); } }

return wordMap;}

const text = "JavaScript और Node.js. JavaScript — यह एक प्रोग्रामिंग भाषा है";```

ब्लॉग

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