Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

सी लैंग्वेज में सिलेक्शन सॉर्ट की प्रक्रिया समझाएं

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

चयन क्रम की प्रक्रिया

  • तत्वों की सूची में पहला सबसे छोटा तत्व चुनें और उसे पहले स्थान पर रखें।

  • सूची में शेष तत्वों के लिए इसे तब तक दोहराएं जब तक कि सभी तत्व क्रमबद्ध न हो जाएं।

निम्नलिखित सूची पर विचार करें -

सी लैंग्वेज में सिलेक्शन सॉर्ट की प्रक्रिया समझाएं

पहला पास

Sm = a[0] = 30 Sm

ए [1] <एसएम $\वर्ग$ $\वर्ग$ 50 <30 (एफ) $\वर्ग$ $\वर्ग$ 30

a[2]

ए[3] <एसएम $\वर्ग$ $\वर्ग$ 10 <30 (टी) $\वर्ग$ $\वर्ग$ 10

ए [4] <एसएम $\वर्ग$ $\वर्ग$ 20<10 (एफ) $\वर्ग$ $\वर्ग$ 10

10 50 40 30 20

दूसरा पास

सी लैंग्वेज में सिलेक्शन सॉर्ट की प्रक्रिया समझाएं

Sm = a[1] = 50 sm

a[2] <एसएम $\वर्ग$ $\वर्ग$ 40 <50 (टी) $\वर्ग$ 40 $\वर्ग$

a[3]

a[4] <एसएम $\वर्ग$ $\वर्ग$ 20<30 (टी) $\वर्ग$ 20

10 20 40 30 50

तीसरा पास

सी लैंग्वेज में सिलेक्शन सॉर्ट की प्रक्रिया समझाएं

Sm = a[2] = 40 Sm

ए [3] <एसएम $\वर्ग$ $\वर्ग$ 30 <40 (टी) $\वर्ग$ $\वर्ग$ 40

a[4]

10 20 30 40 50

चौथा पास

सी लैंग्वेज में सिलेक्शन सॉर्ट की प्रक्रिया समझाएं

Sm = a[3] = 40 Sm

a[4] <$\square$ $\square$ sm 50 <40 (F) $\square$ 40 $\square$ एक्सचेंज a[3] sm वैल्यू के साथ

प्रक्रिया

चयन छँटाई के लिए नीचे दी गई प्रक्रिया देखें।

for (i=0; i<n-1; i++){
   sm=i;
   for (j=i+1; j<n; j++){
      if (a[j] < a[sm])
         sm=j;
      }
      t=a[i];
      a[i] = a[sm];
      a[sm] = t;
   }
}

उदाहरण

चयन छँटाई तकनीक के लिए सी कार्यक्रम निम्नलिखित है -

#include<stdio.h>
int main(){
   int a[50], i,j,n,t,sm;
   printf("enter the No: of elements in the list:\n");
   scanf("%d", &n);
   printf("enter the elements:\n");
   for(i=0; i<n; i++){
      scanf ("%d", &a[i]);
   }
   for (i=0; i<n-1; i++){
      sm=i;
      for (j=i+1; j<n; j++){
         if (a[j] < a[sm]){
            sm=j;
         }
      }
      t=a[i];
      a[i]=a[sm];
      a[sm]=t;
   }
   printf ("after selection sorting the elements are:\n");
   for (i=0; i<n; i++)
      printf("%d\t", a[i]);
   return 0;
}

आउटपुट

जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

enter the No: of elements in the list:
4
enter the elements:
45
12
37
68
after selection sorting the elements are:
12 37 45 68

  1. सी भाषा में छँटाई तकनीकों की व्याख्या करें

    समस्या C भाषा में विभिन्न छँटाई तकनीकें क्या हैं? किसी एक छँटाई तकनीक को उदाहरण सहित समझाइए। समाधान C भाषा पांच छँटाई तकनीक प्रदान करती है, जो इस प्रकार हैं - बबल सॉर्ट (या) एक्सचेंज सॉर्ट। चयन क्रम। सम्मिलन क्रम (या) रैखिक छँटाई। त्वरित छँटाई (या) विभाजन विनिमय छँटाई। मर्ज सॉर्ट (या) बाहरी सॉर्ट

  1. C भाषा में यूनियन टू पॉइंटर को समझाएं

    एक यूनियन को मेमोरी लोकेशन कहा जाता है, जिसे विभिन्न प्रकार के डेटा के कई वेरिएबल द्वारा साझा किया जाता है। सिंटैक्स वाक्य रचना इस प्रकार है - union uniontag{    datatype member 1;    datatype member 2;    ----    ----    datatype member n; }; उदाह

  1. C भाषा में पॉइंटर एक्सेसिंग की अवधारणा की व्याख्या करें

    पॉइंटर एक वेरिएबल है जो दूसरे वेरिएबल के एड्रेस को स्टोर करता है। सूचक घोषणा, आरंभीकरण और पहुंच निम्नलिखित कथन पर विचार करें - int qty = 179; सूचक घोषित करना int *p; p एक पॉइंटर वेरिएबल है जो दूसरे इंटीजर वेरिएबल का पता रखता है। सूचक का प्रारंभ एड्रेस ऑपरेटर (&) का उपयोग पॉइंटर वेरिएबल को इनिशि