কম্পিউটার টিউটোরিয়াল

C/C++-এ ডেট অ্যারে (Array of Dates) সর্ট (Sort) করা

ধরি আমাদের একটি ডেট (Date) অ্যারে আছে। এখানে আমরা দেখব C বা C++ কোড ব্যবহার করে কীভাবে সেগুলো সর্ট করা যায়। ডেটগুলো একটি ক্লাসে (C-তে struct ব্যবহার করা যায়) সংরক্ষিত থাকে। আমরা C++ STL-র sort ফাংশন ব্যবহার করব। ডেটগুলো তুলনা করার জন্য আমাদের নিজস্ব কম্পেয়ার (compare) ফাংশন লিখতে হবে যা sort ফাংশনে ব্যবহার হবে। ভালোভাবে বুঝতে উদাহরণটি দেখুন।

উদাহরণ (C++ প্রোগ্রাম)

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

class Date {
public:
    int d, m, y;
};

bool compare(const Date &date1, const Date &date2) {
    if (date1.y < date2.y)
        return true;
    if (date1.y == date2.y && date1.m < date2.m)
        return true;
    if (date1.y == date2.y && date1.m == date2.m && date1.d < date2.d)
        return true;
    return false;
}

void sortDateArray(Date arr[], int n) {
    sort(arr, arr + n, compare);
}

int main() {
    Date arr[] = {{20, 1, 2017},
                  {25, 3, 2010},
                  {3, 12, 1956},
                  {18, 10, 1982},
                  {19, 4, 2011},
                  {9, 7, 2013}};
    int n = sizeof(arr) / sizeof(arr[0]);
    sortDateArray(arr, n);
    cout << "Sorted dates are" << endl;
    for (int i = 0; i < n; i++) {
        cout << arr[i].d << " " << arr[i].m << " " << arr[i].y << endl;
    }
}

আউটপুট

Sorted dates are
3 12 1956
18 10 1982
25 3 2010
19 4 2011
9 7 2013
20 1 2017

ব্যাখ্যা: compare ফাংশনটি پہلے বছর (year), তারপর মাস (month), তারপর দিন (day) অনুযায়ী ডেটগুলো তুলনা করে। std::sort এই কম্পেয়ার ফাংশন ব্যবহার করে অ্যারেটি সর্ট করে। C-তে qsort() এবং স্ট্রাকচার (struct) ব্যবহার করে একই কাজ করা যায়।

  1. জাভাস্ক্রিপ্টে ডেট অ্যারে সর্ট করা

  2. অ্যান্ড্রয়েডে অ্যারে এলিমেন্ট সর্ট করার পদ্ধতি

  3. সি/সি++-তে মাল্টিডাইমেনশনাল অ্যারে ইনিশিয়ালাইজেশন (Initialization)

  4. C#-তে অ্যারে সর্ট (Sort) করার পদ্ধতি