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

JavaScript में इंसर्शन सॉर्ट कैसे लागू करें?


इंसर्शन सॉर्ट (Insertion Sort)

यह एक बहुत ही सरल तुलना सॉर्ट है जो एक एरे को सॉर्ट करता है। एक तुलना सॉर्ट उस वर्तमान मान की तुलना करता है जिसे हम सॉर्ट करने की कोशिश कर रहे हैं, एरे में अन्य मानों के साथ। यह एक समय में एक आइटम के साथ काम करता है और प्रत्येक आइटम को सही स्थान पर पुनरावृत्त रूप से रखता है ताकि आवश्यक सॉर्टेड एरे प्राप्त हो सके।

वास्तव में, इंसर्शन सॉर्ट कुछ उन्नत एल्गोरिदम जैसे हीप सॉर्ट या मर्ज सॉर्ट जितना कुशल नहीं है। बड़े प्रोग्राम्स के साथ काम करते समय यह सबसे अच्छा विकल्प नहीं है। अपने कम छिपे हुए स्थिर मान के कारण, इंसर्शन सॉर्ट छोटे एरे के साथ काम करते समय हीप या क्विक सॉर्ट जैसे कुछ उन्नत एल्गोरिदम से बेहतर प्रदर्शन करता है।

इंसर्शन सॉर्ट एरे पर बाएं से दाएं चलकर काम करता है। यह वर्तमान आइटम को 'की' के रूप में उपयोग करता है और उस की के बाएं मानों में एक स्थान खोजता है जहां की वास्तव में रहना चाहिए।

एल्गोरिदम ट्रेस

दिया गया एरे: 0, -3, 5, 8, 2, 7, 6

  • इटरेशन 0 - केवल अनसॉर्टेड एरे: 0, -3, 5, 8, 2, 7, 6
  • इटरेशन 1 - की = -3 (इंडेक्स 1)। -3 < 0, इसलिए बाएं जाता है: -3, 0, 5, 8, 2, 7, 6
  • इटरेशन 2 - की = 5। बाएं मानों (-3, 0) से तुलना, सही स्थान पर: -3, 0, 5, 8, 2, 7, 6
  • इटरेशन 3 - की = 8। बाएं मानों से तुलना: -3, 0, 5, 8, 2, 7, 6
  • इटरेशन 4 - की = 2। बाएं मानों से तुलना और सॉर्टेड स्थान पर: -3, 0, 2, 5, 8, 7, 6
  • अंतिम सॉर्टेड एरे: -3, 0, 2, 5, 6, 7, 8

JavaScript कार्यान्वयन

<html>
<head>
<script>
  function iSort(array) {
    for (var p = 1; p < array.length; p++) {
      if (array[p] < array[0]) {
        array.unshift(array.splice(p, 1)[0]);
      } else if (array[p] > array[p-1]) {
        continue;
      } else {
        for (var q = 1; q < p; q++) {
          if (array[p] > array[q-1] && array[p] < array[q]) {
            array.splice(q, 0, array.splice(p, 1)[0]);
          }
        }
      }
    }
    return array;
  }
  document.write(iSort([0, -3, 5, 8, 2, 7, 6]));
</script>
</body>
</html>

आउटपुट

-3,0,2,5,6,7,8

समय जटिलता

मामलासमय जटिलता
सर्वश्रेष्ठ (पहले से सॉर्टेड)O(n)
औसतO(n²)
सबसे खराब (रिवर्स सॉर्टेड)O(n²)
स्पेसO(1) इन-प्लेस
  1. जावास्क्रिप्ट में Array.prototype.sort() मेथड जावास्क्रिप्ट में Array.prototype.sort() मेथड

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

  1. - JavaScript में ऐरे के इंडेक्स के अनुसार सॉर्ट करना

    मान लीजिए हमारे पास ऑब्जेक्ट्स का निम्नलिखित ऐरे है:const arr = [    {       'name' : 'd',       'index' : 3    },    {       'name' : 'c',       'index' : 2 &nbs

  1. - इंसर्शन सॉर्ट

    यह सॉर्टिंग तकनीक कार्ड सॉर्टिंग तकनीक के समान है, दूसरे शब्दों में, हम इंसर्शन सॉर्ट मैकेनिज्म का उपयोग करके कार्ड्स सॉर्ट करते हैं। इस तकनीक के लिए, हम डेटा सेट से एक एलिमेंट चुनते हैं और पिक किए गए एलिमेंट को वापस डेटा सेट में डालने के लिए जगह बनाने के लिए डेटा एलिमेंट्स को शिफ्ट करते हैं। इंसर्