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