এই সেকশনে আমরা দেখব কীভাবে সংখ্যা গুলোকে তাদের ডিজিট সমষ্টি অনুযায়ী সর্ট করা যায়। যেটির ডিজিট সমষ্টি কম, সেটি প্রথমে থাকবে, তারপর বড় ডিজিট সমষ্টি वालা সংখ্যা থাকবে।
data = {14, 129, 501, 23, 0, 145}
সর্ট করার পর ভাব হবে -
data = {0, 14, 23, 501, 145, 129}
এখানে আমরা নিজাদের কমপারিজন লজিক তৈরি করব সর্ট করার জন্য। সেই কমপারিজন লজিকটি C++ STL-র সর্ট ফাংশনে ব্যবহার করা হবে।
অ্যালগরিদম
compare(num1, num2):
শুরু
যদি num1-এর ডিজিট সমষ্টি < num2-এর ডিজিট সমষ্টি, তবে
1 রিটার্ন করো
0 রিটার্ন করো
শেষ
উদাহরণ (C++ কোড)
#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