Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Sắp xếp mảng một chiều giảm dần bằng phương thức non-static


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ánTăng dầnGiảm dần
Selection SortTìm min, đổi chỗTìm max, đổi chỗ
Bubble SortNổi bọt lớn lên cuốiNổi bọt nhỏ lên cuối
Array.SortArray.Sort(arr)Array.Sort(arr); Array.Reverse(arr)