Sắp xếp mảng một chiều theo thứ tự giảm dần sử dụng phương thức instance (non-static) với thuật toán selection sort biến thể.
Ví dụ
using System;
namespace Demo
{
public class MyApplication
{
public static void Main(string[] args)
{
int[] list = { 87, 45, 56, 22, 84, 65 };
Console.WriteLine("Mảng chưa sắp xếp:");
foreach (int i in list)
Console.Write(i + " ");
MyApplication m = new MyApplication();
m.SortFunc(list);
}
public void SortFunc(int[] arr)
{
int temp = 0;
Console.WriteLine("\nMảng đã sắp xếp (giảm dần):");
for (int i = 0; i < arr.Length; i++)
{
for (int j = i + 1; j < arr.Length; j++)
{
// Đổi dấu so sánh: <= thay vì >=
if (arr[i] <= arr[j])
{
temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
Console.Write(arr[i] + " ");
}
}
}
}
Kết quả
Mảng chưa sắp xếp: 87 45 56 22 84 65 Mảng đã sắp xếp (giảm dần): 87 84 65 56 45 22
Giải thích
- Thay đổi điều kiện so sánh từ
>=(tăng dần) thành<=(giảm dần) - Sau mỗi vòng lặp ngoài,
arr[i]là phần tử lớn nhất trong đoạn còn lại - Đây vẫn là Selection Sort biến thể, độ phức tạp O(n²)
So sánh
| Thuật toán | Tăng dần | Giảm dần |
|---|---|---|
| Selection Sort | Tìm min, đổi chỗ | Tìm max, đổi chỗ |
| Bubble Sort | Nổi bọt lớn lên cuối | Nổi bọt nhỏ lên cuối |
| Array.Sort | Array.Sort(arr) | Array.Sort(arr); Array.Reverse(arr) |