Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript में क्विक सॉर्ट का उपयोग करके संख्याओं की सरणी को सॉर्ट करना


हमें एक JavaScript फ़ंक्शन लिखना होगा जो संख्याओं की एक सरणी लेता है और क्विक सॉर्ट एल्गोरिदम का उपयोग करके इसे सॉर्ट करता है।

क्विक सॉर्ट:

यह एल्गोरिदम मूल रूप से एक विभाजन और विजय एल्गोरिदम है जहां हम लूप के प्रत्येक पास में एक पिवट चुनते हैं और पिवट से छोटे सभी तत्वों को उसके बाईं ओर और पिवट से बड़े सभी तत्वों को उसके दाईं ओर रखते हैं (यदि यह आरोही क्रम है तो अन्यथा विपरीत)।

उदाहरण

इसका कोड निम्नलिखित होगा:

const arr = [43, 3, 34, 34, 23, 232, 3434, 4, 23, 2, 54, 6, 54];
// एक "पिवट" तत्व ढूंढें जिसकी तुलना अन्य सभी तत्वों से की जाए
// और फिर उनके मानों के आधार पर तत्वों को पिवट से पहले या बाद में शिफ्ट करें
const quickSort = (arr, left = 0, right = arr.length - 1) => {
  let len = arr.length, index;
  if(len > 1) {
    index = partition(arr, left, right);
    if(left < index - 1) {
      quickSort(arr, left, index - 1);
    }
    if(index < right) {
      quickSort(arr, index, right);
    }
  }
  return arr;
};
const partition = (arr, left, right) => {
  let middle = Math.floor((right + left) / 2),
  pivot = arr[middle],
  i = left, // सरणी में पहले आइटम पर पॉइंटर शुरू करें
  j = right; // सरणी में अंतिम आइटम पर पॉइंटर शुरू करें
  while(i <= j) {
    // बाएं पॉइंटर को तब तक दाईं ओर ले जाएं जब तक बाएं पर मान पिवट मान से अधिक न हो
    while(arr[i] < pivot) {
      i++;
    }
    // दाएं पॉइंटर को तब तक बाईं ओर ले जाएं जब तक दाएं पर मान पिवट मान से कम न हो
    while(arr[j] > pivot) {
      j--;
    }
    // यदि बायां पॉइंटर दाएं पॉइंटर से कम या बराबर है, तो मानों को स्वैप करें
    if(i <= j) {
      [arr[i], arr[j]] = [arr[j], arr[i]]; // ES6 डिस्ट्रक्चरिंग स्वैप
      i++;
      j--;
    }
  }
  return i;
};
console.log(quickSort(arr));

आउटपुट

कंसोल में आउटपुट:

[
  2, 3, 4, 6, 23,
  23, 34, 34, 43, 54,
  54, 232, 3434
]

  1. - जावास्क्रिप्ट में मर्ज सॉर्ट बनाम क्विक सॉर्ट

    मर्ज सॉर्ट डिवाइड एंड कंक्वर तकनीक पर आधारित एक सॉर्टिंग तकनीक है। इसका सबसे खराब स्थिति में समय जटिलता O(n log n) है। लेकिन यह अतिरिक्त लागत के साथ आता है क्योंकि यह एल्गोरिदम अतिरिक्त O(n) मेमोरी लेता है। आइए देखें कि हम इस एल्गोरिदम को कैसे लागू करने जा रहे हैं। हम 2 फंक्शन बनाएंगे, mergeSort और

  1. जावास्क्रिप्ट में Array.prototype.sort() मेथड जावास्क्रिप्ट में Array.prototype.sort() मेथड

    जावास्क्रिप्ट Array.prototype.sort() मेथड का उपयोग एरे को सॉर्ट करने के लिए किया जाता है। सॉर्टिंग का क्रम अल्फाबेटिक, न्यूमेरिक, आरोही या अवरोही हो सकता है। Array.prototype.sort() मेथड के लिए कोड निम्नलिखित है: उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /

  1. जावास्क्रिप्ट ऑब्जेक्ट्स के ऐरे पर ऐरे के मेथड्स का उपयोग करना जावास्क्रिप्ट ऑब्जेक्ट्स के ऐरे पर ऐरे के मेथड्स का उपयोग करना

    जावास्क्रिप्ट ऑब्जेक्ट्स के ऐरे पर ऐरे के मेथड्स का उपयोग करने का कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0 /> <title>Document</title> <style