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

C भाषा में सॉर्टिंग की अवधारणा और दक्षता

सॉर्टिंग क्यों जरूरी है?

सॉर्टिंग डेटा को आरोही या अवरोही क्रम में व्यवस्थित करने की प्रक्रिया है। यह खोज को आसान बनाती है।

  • मनुष्यों को जल्दी खोज की आवश्यकता महसूस हुई तो सॉर्टिंग की अवधारणा आई।
  • डेटाबेस में रिकॉर्ड, रोल नंबर, टेलीफोन डायरेक्टरी, पुस्तक के पेज आदि खोजने में सॉर्टिंग मदद करती है।
  • अनसॉर्टेड डेटा में खोज मुश्किल होती है; सॉर्टिंग डेटा को क्रमबद्ध कर खोज को सरल बनाती है।

सॉर्टिंग दक्षता के मानदंड

कौन सा एल्गोरिदम बेहतर है, यह तय करने के दो मुख्य मानदंड हैं:

  1. समय: दिए गए डेटा को सॉर्ट करने में लगा समय।
  2. मेमोरी स्पेस: सॉर्टिंग के लिए आवश्यक अतिरिक्त मेमोरी।

कंप्यूटर कार्ड्स की तरह मैन्युअल सॉर्टिंग नहीं करते; वैज्ञानिकों ने विभिन्न एल्गोरिदम विकसित किए हैं।

उदाहरण: सिलेक्शन सॉर्ट प्रोग्राम

#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: 34 12 56 7
Sorted array: 7 12 34 56

सामान्य सॉर्टिंग एल्गोरिदम

  • बबल सॉर्ट - सरल लेकिन धीमा O(n²)
  • सिलेक्शन सॉर्ट - कम स्वैप, O(n²)
  • इन्सर्शन सॉर्ट - छोटे/लगभग सॉर्टेड डेटा के लिए अच्छा
  • मर्ज सॉर्ट - O(n log n), स्थिर
  • क्विक सॉर्ट - O(n log n) औसत, इन-प्लेस
  • हीप सॉर्ट - O(n log n), गारंटीड
  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; // एड्रेस-ऑफ ऑपरेटर (&) से पता प्राप्त करें मेमोरी आर

  1. C# में क्लास की अवधारणा समझाएं C# में क्लास की अवधारणा समझाएं

    क्लास C# में आवश्यक प्रकारों में से एक है। हम क्लास को समस्या डोमेन से संबंधित ऑब्जेक्ट्स के लिए ब्लूप्रिंट के रूप में सोच सकते हैं। यह एक टेम्पलेट है जिससे हम ऑब्जेक्ट्स बनाते हैं, उस संरचना और व्यवहार को परिभाषित करते हुए जो इस क्लास से बने ऑब्जेक्ट्स के सेट द्वारा साझा किया जाएगा। सरल शब्दों में,