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

C भाषा में सिलेक्शन सॉर्ट एल्गोरिदम

सिलेक्शन सॉर्ट क्या है?

सिलेक्शन सॉर्ट एक सरल सॉर्टिंग एल्गोरिदम है जो ऐरे में सबसे छोटा एलिमेंट ढूंढकर उसे पहली पोजीशन पर रखता है, फिर शेष ऐरे के लिए प्रक्रिया दोहराता है।

प्रक्रिया

  1. पूरी सूची में से सबसे छोटा एलिमेंट चुनें और उसे पहली पोजीशन पर रखें।
  2. शेष एलिमेंट्स के लिए यही प्रक्रिया दोहराएं जब तक सभी सॉर्ट न हो जाएं।

उदाहरण: 30, 50, 40, 10, 20

पहला पास

सबसे छोटा = 10 (इंडेक्स 3)। इसे इंडेक्स 0 (30) के साथ स्वैप करें।

10 50 40 30 20

दूसरा पास

शेष (50,40,30,20) में सबसे छोटा = 20। इंडेक्स 1 (50) के साथ स्वैप करें।

10 20 40 30 50

तीसरा पास

शेष (40,30,50) में सबसे छोटा = 30। इंडेक्स 2 (40) के साथ स्वैप करें।

10 20 30 40 50

चौथा पास

शेष (40,50) में सबसे छोटा = 40। पहले से सही स्थान पर है।

10 20 30 40 50

एल्गोरिदम

for (i = 0; i < n-1; i++) {
    sm = i;
    for (j = i+1; j < n; j++) {
        if (a[j] < a[sm])
            sm = j;
    }
    // स्वैप a[i] और a[sm]
    t = a[i];
    a[i] = a[sm];
    a[sm] = t;
}

C प्रोग्राम

#include <stdio.h>

int main() {
    int a[50], i, j, n, t, sm;
    printf("Enter number of elements: ");
    scanf("%d", &n);
    printf("Enter elements: ");
    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("Sorted array: ");
    for (i = 0; i < n; i++)
        printf("%d\t", a[i]);
    return 0;
}

आउटपुट

Enter number of elements: 4
Enter elements: 45 12 37 68
Sorted array: 12 37 45 68

विशेषताएं

  • समय जटिलता: O(n²) - सभी केस में।
  • स्पेस जटिलता: O(1) - इन-प्लेस सॉर्टिंग।
  • स्वैप की संख्या न्यूनतम (अधिकतम n-1)।
  1. C भाषा में सॉर्टिंग तकनीकें (Sorting Techniques) C भाषा में सॉर्टिंग तकनीकें (Sorting Techniques)

    सॉर्टिंग क्या है? सॉर्टिंग (Sorting) डेटा को किसी विशेष क्रम (आरोही/अवरोही) में व्यवस्थित करने की प्रक्रिया है। C भाषा में कई सॉर्टिंग एल्गोरिदम लागू किए जा सकते हैं। पांच प्रमुख सॉर्टिंग तकनीकें बबल सॉर्ट (Bubble Sort) - एक्सचेंज सॉर्ट भी कहलाता है सिलेक्शन सॉर्ट (Selection Sort) इन्सर्शन सॉर्ट

  1. C भाषा में यूनियन टू पॉइंटर (Union to Pointer) C भाषा में यूनियन टू पॉइंटर (Union to Pointer)

    यूनियन (Union) क्या है? यूनियन एक यूजर-डिफाइंड डेटा प्रकार है जो एक ही मेमोरी स्थान को विभिन्न डेटा प्रकारों के सदस्यों के लिए साझा करने की अनुमति देता है। किसी भी समय केवल एक सदस्य ही मान रख सकता है। यूनियन की घोषणा union यूनियन_नाम { डेटा_प्रकार सदस्य1; डेटा_प्रकार सदस्य2; // ... };

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

    पॉइंटर घोषणा, प्रारंभिकरण और एक्सेस 1. सामान्य चर int qty = 179; // मेमोरी में: पता 1000 पर मान 179 संग्रहीत 2. पॉइंटर घोषणा int *p; // p एक पॉइंटर चर है जो int का पता रख सकता है 3. पॉइंटर प्रारंभिकरण int qty = 175; int *p; p = &qty; // एड्रेस-ऑफ ऑपरेटर (&) से पता प्राप्त करें मेमोरी आर