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

C++ में नंबर्स को उनके डिजिट्स के योग के अनुसार सॉर्ट करें


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

data = {14, 129, 501, 23, 0, 145}

सॉर्ट करने के बाद, वे होंगे -

data = {0, 14, 23, 501, 145, 129}

यहां हम अपनी खुद की तुलना लॉजिक बनाएंगे ताकि उन्हें सॉर्ट किया जा सके। वह तुलना लॉजिक C++ STL में सॉर्ट फंक्शन में उपयोग की जाएगी।

एल्गोरिदम

compare(num1, num2): Begin    यदि num1 के डिजिट्स का योग < num2 के डिजिट्स का योग, तो       return 1    return 0 End

उदाहरण

#include<iostream> #include<algorithm> using namespace std; int sumOfDigits(int n){    int sum = 0;    while(n){       sum += n%10;       n /= 10;    }    return sum; } int compare(int num1, int num2){    if(sumOfDigits(num1) < sumOfDigits(num2))    return 1;    return 0; } main(){    int data[] = {14, 129, 501, 23, 0, 145};    int n = sizeof(data)/sizeof(data[0]);    sort(data, data + n, compare);    for(int i = 0; i<n; i++){       cout << data[i] << " ";    } }

आउटपुट

0 14 23 501 145 129

  1. - C++ में नोम सॉर्ट (Gnome Sort) प्रोग्राम

    नोम सॉर्ट एक सॉर्टिंग एल्गोरिदम है जो इंसर्शन सॉर्ट के समान है, सिवाय इसके कि किसी तत्व को उसकी उचित जगह पर ले जाना स्वैप की एक श्रृंखला द्वारा पूरा किया जाता है, जैसे बबल सॉर्ट में। Input: 53421 Output: 12345 व्याख्या सॉर्टिंग एल्गोरिदम जो किसी तत्व को उसकी उचित जगह पर स्वैप की एक श्रृंखला द्वारा

  1. - शेकर सॉर्ट करने के लिए C++ प्रोग्राम

    शेकर सॉर्ट का उपयोग दिए गए डेटा को सॉर्ट करने के लिए किया जाता है। बबल सॉर्ट के विपरीत, शेकर सॉर्ट सरणी को दोनों दिशाओं में ऑर्डर करता है। इस एल्गोरिदम की सबसे खराब जटिलता O(n^2) है। एल्गोरिदम शुरुआत    ShakerSort() फ़ंक्शन में arr डेटा की सरणी और n मानों की संख्या, आर्गुमेंट सूची में होती

  1. - C++ प्रोग्राम दी गई संख्या के अंकों का योग करने के लिए

    C++ भाषा में अंकों का योग गणना करने का एक उदाहरण निम्नलिखिक है, उदाहरण #include<iostream> using namespace std; int main() {    int x, s = 0;    cout << "संख्या दर्ज करें: ";    cin >> x;    while (x != 0) {       s =