इस खंड में हम देखेंगे कि संख्याओं को उनके अंकों के योग के अनुसार कैसे क्रमबद्ध किया जाए। इसलिए यदि किसी संख्या में अंकों का योग कम है, तो उसे पहले रखा जाएगा, फिर अगली संख्या को अंकों के बड़े योग के साथ रखा जाएगा।
data = {14, 129, 501, 23, 0, 145}
छँटाई के बाद, वे होंगे -
data = {0, 14, 23, 501, 145, 129}
यहां हम उन्हें छांटने के लिए अपना खुद का तुलना तर्क बनाएंगे। उस तुलना तर्क का उपयोग C++ STL में सॉर्ट फ़ंक्शन में किया जाएगा।
एल्गोरिदम
compare(num1, num2): Begin if sum of digits of num1 < sum of digits of num2, then 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