Heap Sort in Data Structure in Hindi (हिप सॉर्ट क्या है )

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 कर देते है.

 


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 कर सकते है,

 

Leave a Comment