C#-এ একটি ইন্টিজার অ্যারে অবরোহী ক্রমে (Descending Order) সর্ট করার জন্য Array.Sort মেথডের সাথে কাস্টম কম্পারিজন ব্যবহার করা হয়।
প্রাথমিক অ্যারে
int[] arr = new int[] { 87, 23, 65, 29, 67 };
সর্ট করার কোড
Array.Sort<int>(arr, new Comparison<int>((val1, val2) => val2.CompareTo(val1)));
সম্পূর্ণ উদাহরণ
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main(string[] args)
{
int[] arr = new int[] { 87, 23, 65, 29, 67 };
Console.WriteLine("প্রাথমিক অ্যারে:");
foreach (int item in arr)
{
Console.WriteLine(item);
}
// অবরোহী ক্রমে সর্ট
Array.Sort<int>(arr, new Comparison<int>((val1, val2) => val2.CompareTo(val1)));
Console.WriteLine("\nঅবরোহী ক্রমে সর্ট করা অ্যারে:");
foreach (int item in arr)
{
Console.WriteLine(item);
}
}
}
আউটপুট
প্রাথমিক অ্যারে:
87
23
65
29
67
অবরোহী ক্রমে সর্ট করা অ্যারে:
87
67
65
29
23
বিকল্প পদ্ধতিগুলো
১. LINQ ব্যবহার (নতুন অ্যারে তৈরি হয়)
using System.Linq;
int[] sortedDesc = arr.OrderByDescending(x => x).ToArray();
২. Array.Sort + Array.Reverse (দুটি স্টেপ)
Array.Sort(arr); // আরোহী ক্রমে সর্ট
Array.Reverse(arr); // উল্টে দিন
৩. Comparison ডেলিগেটের পরিবর্তে ল্যাম্বডা এক্সপ্রেশন
// উভয় সমতুল্য:
Array.Sort(arr, (a, b) => b.CompareTo(a));
// অথবা
Array.Sort(arr, (a, b) => -a.CompareTo(b));
পারফরম্যান্স তুলনা
| পদ্ধতি | মেমরি | স্পিড | মূল অ্যারে পরিবর্তন |
|---|---|---|---|
| Array.Sort + Comparison | O(1) এক্সট্রা | দ্রুততম | হ্যাঁ |
| Array.Sort + Reverse | O(1) এক্সট্রা | দ্রুত | হ্যাঁ |
| LINQ OrderByDescending | O(n) নতুন অ্যারে | কुछটা ধীর | না |
কब কোন পদ্ধতি ব্যবহার করবেন
- Array.Sort + Comparison: সর্বোচ্চ পারফরম্যান্স দরকার হলে, মূল অ্যারে পরিবর্তন করা সমস্যা না হলে।
- LINQ: কোড পঠনযোগ্যতা এবং ফাংশনাল স্টাইল পছন্দ হলে।
- Array.Sort + Reverse: লিগ্যাসি কোড বা সহজ বুঝতে চাইলে।