Hello दोस्तों! आज मैं आपको इस पोस्ट में Heap Sort in Data Structure in Hindi (हिप सॉर्ट क्या है ) के बारें में बताऊंगा, और इसके example को भी पढेंगे,
तो चलिए शुरू करते हैं.
What is Heap Sort in Data Structure in Hindi
यह एक binary tree है जिसकी parent node हमेशा child node से बड़ी होगी ।
heap sorting मे एक दी हुई list को heap sort मे बदलते हुये इस प्रकार से arrange करते है.
की वह list स्वतः ही sort हो जाए ।
Heap sort की तकनीक मे हम element को एक एक करके tree मे insert कर देते है.
और यदि insert किया गया element, parent node से बड़ा है.
तो उस node को parent node के साथ swap कर देते है.
- selection sortक्या है
- What is Recursion in D
- What is (DBMS) database management system in hindi ?
- ata Structure in Hindi ?
Example
इस विधि को अच्छी तरह समझने के लिए हम एक उदाहरण की साहायता लेंगे ।
नीचे एक unsporting list के element को दर्शाया गया है ।
44 30 50 22 60 55 77
Heap sorting के लिए tree बनाते हुये node को pre-order के रूप मे insert करते है अर्थात पहली node को root पर दूसरी node को left मे , तीसरी node को right मे तथा क्रम मे आगे तक nodes को tree मे insert करते है ।
Step1 44 को हम tree मे insert करेंगे , चूंकि tree अभी तक नहीं बना है
इसलिए 44 ही parent node बन जाएगी ।
अतः अब list -44
Step2 अब हमे 30 को heap tree मे insert करना है चूंकि हम पहले ही बता चुके है
heap tree मे insertion करते हुये पहले root मे , फिर left मे node को insert करते है
इसलिए हम 30 को 44 के left मे डालेंगे ।
अब list – 44,30
Step3 अब हमे 50 को heap tree मे insert करना है
insertion के नियम के अनुसार root अर्थात 44 के right मे insert करेंगे ।
यहाँ पर अपने देखा की उपरोक्त tree के child node का मान parent node के मान से बड़ा है
इसलिए हम इन दोनों की swapping कर देंगे ।
अतः अब list – 50 ,30,44 ।
Step4 अब हमे प्राप्त tree मे 22 को insert करना है ।
चूंकि root (50) के दोनों ओर (left एवं right मे ) data save है
इसीलिए हम root के left child को एक sub- tree का root मानकर इसके left मे 22 को insert करेंगे ।
Step5 यहाँ पर हम 60 को insert करना है ,
चुकी हम यहाँ root के left tree मे insertion कर रहे है
इसीलिए 60 को 30 के right मे insert करेंगे ।
यहां पर हमने देखा child node का मान parent node के मान से बड़ा हो गया है
इसीलिए हम इन दोनों की swapping कर देंगे ।
दोबारा हमने यहां देखा की child node(60) का मान parent node (50) से बड़ा है
इसीलिए हम इन दोनों की swapping कर देंगे ।
अतः अब list – 60,50,44,22,30
Step6 bअब हमे 55 को insert करना है
चूंकि हम root के left sub-tree के दोनों और insertion का चुके है
इसीलिए अब हम root के right sub-tree के left मे node को insert करेंगे
यहां पर हमने देखा child node का मान parent node के मान से बड़ा हो गया है
इसीलिए हम इन दोनों की swapping कर देंगे ।
अतः अब list – 60,50,55,22,30,44
Step7 अब हमे 77 को insert कराना है
चूंकि हम root के right sub-tree के left मे insertion कर चुके है
इसीलिए अब्ब हम root के right sub-tree के right मे node को insert करेंगे ।
यहां पर हमने देखा child node का मान parent node के मान से बड़ा हो गया है
इसीलिए हम इन दोनों की swapping कर देंगे ।
दोबारा हमने यहां देखा की child node(77) का मान parent node (60) से बड़ा है
इसीलिए हम इन दोनों की swapping कर देंगे ।
अतः अब list – 77,50,60,22,30,44,55
अब चूंकि list को increasing/ascending order मे sort करना है
अतः हमे list के पहले element (77) और अंतिम element (55) की swapping करनी होगी ।
अतः अब list – 55,50,60,22,30,44,77
अब 77 sorts हो चुका है list के अन्य element को sort करने के लिए list के इस sorted element को छोड़कर अन्य unsorted element पर उपरोक्त प्रक्रिया पुनः दोहराई जाती है ।
1 Step – set in R, root, par, son, temp (R, root, par, and son व temp को initializeकरे )
2 Step – Repeat for k = n, k<=1 (k का मान n सुरक्षित करे और step3 से step15 तक दोहराए जब तक k का मान 1 के बराबर या बड़ा हो )
3 Step – call wapt with &A[1], &A[k] (A[1] व A[k] को swap करने के लिए function को call करे ।
4 Step – set par = 1 (part का मान 1 सुरक्षित करे )
5 Step – set son = par x 2 ( son variable मे A[1] अर्थात array का पहला element सुरक्षित करे ।
6 Step – set roo = A[1] (root variable मे A[1] अर्थात array का पहला element सुरक्षित करे
7 Step – check whether (son + 1) < l (जाँचे की क्या (son + 1) का मान K से छोटा है ।)
(यदि हां तो)
check whether A[son+1] > A[son] (जाँचे की क्या A[son+1]का मान A]son] से बड़ा है )
(यदि हां तो)
son++ ( यदि हां तो son मे 1 increment करे ।)
8 Step – Repeat while [son < = (k-1) and A[son] > root]
( step9 से step15 तक दोहराए जब तक son का मान K-1 से छोटा या बराबर है और A[son] का मान root से बड़ा है ।
9 Step – set A[par] = A[son] (A [par ] मे A[son] का मान सुरक्षित करे )
10 Step – set par = son (par मे son का मान सुरक्षित करे )
11 Step – set son = par x 2 (son मे par के दुगुने मान को सुरक्षित करे)
12 Step – Check whether (son+1)<k (जाँचे की क्या (son+1) k से छोटा है )
( यदि हां तो) perform Step 13 Step 13 का अनुसरण करे )
else अन्यथा
Perform step 14 का अनुसरण करे)
13 Step – check whether A[son+1] > A[son]
(जांचे की क्या A[son+1] का मान A[son] से बड़ा है )
(यदि हां तो) son ++ (यदि हां तो son मे एक का increment करे )
14 Step – check whether son > n (जांचे की क्या son का मान n से बड़ा है )
(यदि हां तो) set son = n (यदि हां तो son मे n सुरक्षित करे ।)
[End of If condition]
15 Step – set A[par] = root (A[par] मे root का मान सुरक्षित करे )
[End of loop of step 8]
[end of loop of step 2]
16 Step – Exit
निवेदन:- अगर आपके लिए यह आर्टिकल useful रहा हो तो इसे अपने दोस्तों और classmates के साथ अवश्य share कीजिये, और अन्य विषयों से related कोई question हो तो नीचे कमेंट के द्वारा बताइए. thanks.
इसे भी देखे:
Hello दोस्तों! नीचे दिए गए links पर click करके आपको हम इस पोस्ट में (Computer Online Test) की Practice कराएंगे जिससे आप अपने CCC, O level , कम्प्युटर GK की practice कर सकते है.
इस post के द्वारा आप अपनी कम्प्युटर की नॉलेज बड़ सकते है.
उसके साथ ही साथ आप अपने कई प्रकार के पेपरो की भी तैयरी भी कर सकते है.
जैसे की CCC, O level , कम्प्युटर GK की practice कर सकते है,