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

C++ में सॉर्टिंग

इस सेक्शन में हम देखेंगे कि C++ में सॉर्टिंग एल्गोरिदम कैसे निष्पादित करें। एक सॉर्टेड ऐरे एक ऐरे है जिसमें प्रत्येक एलिमेंट किसी क्रम में सॉर्टेड होते हैं जैसे न्यूमेरिकल, अल्फाबेटिकल आदि। एक न्यूमेरिकल ऐरे को सॉर्ट करने के लिए कई एल्गोरिदम हैं जैसे बबल सॉर्ट, इन्सर्शन सॉर्ट, सिलेक्शन सॉर्ट, मर्ज सॉर्ट, क्विक सॉर्ट, हीप सॉर्ट आदि। सिलेक्शन सॉर्ट का उपयोग करके ऐरे को सॉर्ट करने के बारे में अधिक विवरण नीचे दिए गए हैं।

सिलेक्शन सॉर्ट एक सॉर्टिंग मेथड है जो एक सॉर्टेड ऐरे देता है। यह अनसॉर्टेड भाग की शुरुआत में एलिमेंट के साथ ऐरे में सबसे छोटे एलिमेंट को बार-बार ढूंढकर और इंटरचेंज करके ऐसा करता है।

सिलेक्शन सॉर्ट का उपयोग करके सॉर्टेड ऐरे लागू करने वाला एक प्रोग्राम निम्नलिखित है।

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

#include <iostream>
using namespace std;

void selectionSort(int a[], int n) {
    int i, j, min, temp;
    for (i = 0; i < n - 1; i++) {
        min = i;
        for (j = i + 1; j < n; j++)
            if (a[j] < a[min])
                min = j;
        temp = a[i];
        a[i] = a[min];
        a[min] = temp;
    }
}

int main() {
    int a[] = { 22, 91, 35, 78, 10, 8, 75, 99, 1, 67 };
    int n = sizeof(a) / sizeof(a[0]);
    int i;
    cout << "दिया गया ऐरे है:" << endl;
    for (i = 0; i < n; i++)
        cout << a[i] << " ";
    cout << endl;
    
    selectionSort(a, n);
    
    cout << "\nसॉर्टेड ऐरे है: \n";
    for (i = 0; i < n; i++)
        cout << a[i] << " ";
    return 0;
}

आउटपुट

दिया गया ऐरे है:
22 91 35 78 10 8 75 99 1 67
सॉर्टेड ऐरे है:
1 8 10 22 35 67 75 78 91 99

सिलेक्शन सॉर्ट व्याख्या

void selectionSort(int a[], int n) {
    int i, j, min, temp;
    for (i = 0; i < n - 1; i++) {
        min = i;
        for (j = i + 1; j < n; j++)
            if (a[j] < a[min])
                min = j;
        temp = a[i];
        a[i] = a[min];
        a[min] = temp;
    }
}

main() फ़ंक्शन में, ऐरे a[] परिभाषित किया गया है। फिर फ़ंक्शन selectionSort() को ऐरे a[] और इसके साइज़ n के साथ कॉल किया जाता है। अंत में, सॉर्टेड ऐरे प्रदर्शित किया जाता है।

C++ स्टैंडर्ड लाइब्रेरी सॉर्टिंग

#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;

int main() {
    vector v = {22, 91, 35, 78, 10, 8, 75, 99, 1, 67};
    
    // डिफ़ॉल्ट: आरोही (std::sort - इंट्रोसॉर्ट)
    sort(v.begin(), v.end());
    
    // डिसेंडिंग
    sort(v.begin(), v.end(), greater());
    
    // कस्टम कम्पेरेटर
    sort(v.begin(), v.end(), [](int a, int b) { return a > b; });
    
    // स्थिर सॉर्ट (समान एलिमेंट्स का क्रम बनाए रखता है)
    stable_sort(v.begin(), v.end());
    
    // आंशिक सॉर्ट (पहले k एलिमेंट्स)
    partial_sort(v.begin(), v.begin() + 3, v.end());
    
    // nth एलिमेंट (क्विकसेलेक्ट)
    nth_element(v.begin(), v.begin() + v.size()/2, v.end());
    
    return 0;
}

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

एल्गोरिदम सर्वश्रेष्ठ औसत सबसे खराब स्पेस स्थिर
सिलेक्शन सॉर्ट O(n²) O(n²) O(n²) O(1) नहीं
बबल सॉर्ट O(n) O(n²) O(n²) O(1) हां
इन्सर्शन सॉर्ट O(n) O(n²) O(n²) O(1) हां
मर्ज सॉर्ट O(n log n) O(n log n) O(n log n) O(n) हां
क्विक सॉर्ट O(n log n) O(n log n) O(n²) O(log n) नहीं
हीप सॉर्ट O(n log n) O(n log n) O(n log n) O(1) नहीं
std::sort O(n log n) O(n log n) O(n log n) O(log n) नहीं

कब क्या उपयोग करें?

  • std::sort - सामान्य उद्देश्य, सबसे तेज़ औसत केस
  • std::stable_sort - जब समान एलिमेंट्स का क्रम मायने रखता है
  • std::partial_sort - जब केवल शीर्ष k एलिमेंट्स चाहिए
  • std::nth_element - जब केवल nth एलिमेंट चाहिए (मेडियन)
  • इन्सर्शन सॉर्ट - छोटे ऐरे या लगभग सॉर्टेड डेटा के लिए
  1. - C++ में स्ट्रिंग्स की सरणी

    इस खंड में हम देखेंगे कि C++ में स्ट्रिंग्स की सरणी को कैसे परिभाषित किया जाए। जैसा कि हम जानते हैं कि C में कोई स्ट्रिंग्स नहीं थीं। हमें कैरेक्टर सरणी का उपयोग करके स्ट्रिंग्स बनानी पड़ती थीं। इसलिए कुछ स्ट्रिंग्स की सरणी बनाने के लिए, हमें कैरेक्टर्स की 2-आयामी सरणी बनानी पड़ती थी। प्रत्येक पंक्

  1. - C++ में वेक्टर को सॉर्ट करना

    C++ में वेक्टर को सॉर्ट करना std::sort() का उपयोग करके किया जा सकता है। यह <algorithm> हेडर में परिभाषित है। एक स्थिर सॉर्ट प्राप्त करने के लिए std::stable_sort का उपयोग किया जाता है। यह बिल्कुल sort() की तरह है लेकिन समान एलिमेंट्स के सापेक्ष क्रम को बनाए रखता है। आवश्यकतानुसार Quicksort(),

  1. - C++ में std::sort का उपयोग करके ऐरे को सॉर्ट कैसे करें

    प्रोग्रामिंग भाषा में, सॉर्टिंग एक बुनियादी फंक्शन है जिसे डेटा पर लागू करके डेटा को आरोही या अवरोही क्रम में व्यवस्थित किया जाता है। C++ प्रोग्राम में, ऐरे को सॉर्ट करने के लिए std::sort() फंक्शन होता है। sort(start address, end address) यहां, ऐरे के अंतिम तत्व के अगले सन्निहित स्थान का पता।