Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

इंसर्शन सॉर्ट लिस्ट C++

मान लीजिए हमारे पास एक लिंक्ड लिस्ट है, हमें इस लिस्ट में इंसर्शन सॉर्ट करना है। तो अगर सूची [9,45,23,71,80,55] की तरह है, तो क्रमबद्ध सूची [9,23,45,55,71,80] है।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • डमी:=कुछ यादृच्छिक मान के साथ नया नोड

  • नोड:=दी गई सूची

  • जबकि नोड शून्य नहीं है,

    • newNode =नोड के आगे, डमीहेड:=डमी के आगे, prevDummyHead:=डमी

    • जबकि सच -

      • यदि डमीहेड मौजूद नहीं है, तो डमीहेड का मूल्य> नोड का मूल्य

        • नोड के आगे:=डमीहेड

        • prevDummyHead के आगे:=नोड

        • लूप तोड़ें

      • prevDummyHead :=dymmyHead, और dummyHead =डमी हेड के आगे

    • नोड:=अगला नोड

  • डमी के आगे वापसी

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

class Solution {
   public:
   ListNode* insertionSortList(ListNode* a) {
      ListNode* dummy = new ListNode(-1);
      ListNode* node = a;
      ListNode* nextNode;
      ListNode* dummyHead;
      ListNode* prevDummyHead;
      while(node != NULL){
         nextNode = node->next;
         dummyHead = dummy->next;
         prevDummyHead = dummy;
         while(1){
            if(!dummyHead || dummyHead->val > node->val){
               node->next = dummyHead;
               prevDummyHead->next = node;
               //cout << prevDummyHead->val << " " << node->val << endl;
               break;
            }
         }
         prevDummyHead = dummyHead;
         dummyHead = dummyHead->next;
      }
      node = nextNode;
   }
   return dummy->next;
}

इनपुट

[9,45,23,71,80,55]

आउटपुट

[9,23,45,55,71,80]

  1. C++ में एक बहुस्तरीय लिंक्ड सूची को समतल करें

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

  1. सी ++ प्रोग्राम इंसर्शन सॉर्ट को लागू करने के लिए

    यह छँटाई तकनीक कार्ड छँटाई तकनीक के समान है, दूसरे शब्दों में हम सम्मिलन छँटाई तंत्र का उपयोग करके कार्डों को छाँटते हैं। इस तकनीक के लिए, हम डेटा सेट से एक तत्व उठाते हैं और डेटा तत्वों को डेटा सेट में वापस डालने के लिए जगह बनाने के लिए डेटा तत्वों को स्थानांतरित करते हैं। सम्मिलन क्रमित करने की तक

  1. सी # में सम्मिलन क्रमबद्ध करें

    सम्मिलन छँटाई एक छँटाई एल्गोरिथ्म है जो एक समय में एक तत्व लेता है और उसे सरणी में उसकी सही स्थिति में सम्मिलित करता है। यह प्रक्रिया तब तक जारी रहती है जब तक कि सरणी क्रमबद्ध नहीं हो जाती। एक प्रोग्राम जो C# में इंसर्शन सॉर्ट प्रदर्शित करता है, वह इस प्रकार दिया गया है। उदाहरण using System; namesp