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

C++ में लिंक्ड लिस्ट पर इन्सर्शन सॉर्ट (Insertion Sort List)


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

इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:

  • dummy := कुछ यादृच्छिक मान वाला नया नोड
  • node := दी गई लिस्ट
  • जब तक node null नहीं है:
    • newNode = node का next, dummyHead := dummy का next, prevDummyHead := dummy
    • जब तक true:
      • यदि dummyHead मौजूद नहीं है या dummyHead का मान > node का मान:
        • node का next := dummyHead
        • prevDummyHead का next := node
        • लूप तोड़ें
      • prevDummyHead := dummyHead, और dummyHead = dummyHead का next
    • node := newNode
  • dummy का next वापस करें

उदाहरण

आइए निम्नलिखित कार्यान्वयन को देखें:

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;
                    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++ में मल्टीलेवल लिंक्ड सूची को समतल करना C++ में मल्टीलेवल लिंक्ड सूची को समतल करना

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

  1. - C++ प्रोग्राम: इंसर्शन सॉर्ट लागू करना

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

  1. - C# में इंसर्शन सॉर्ट

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