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

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


Sắp xếp mảng một chiều theo thứ tự tăng dần sử dụng phương thức instance (non-static) với thuật toán sắp xếp chọn (selection sort).

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);
        }
        
        // Phương thức instance (non-static)
        public void SortFunc(int[] arr)
        {
            int temp = 0;
            
            Console.WriteLine("\nMảng đã sắp xếp:");
            for (int i = 0; i < arr.Length; i++)
            {
                for (int j = i + 1; j < arr.Length; j++)
                {
                    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: 22 45 56 65 84 87

Giải thích thuật toán

Đây là biến thể của Selection Sort:

  • Vòng lặp ngoài i duyệt từ 0 đến n-1
  • Vòng lặp trong j so sánh arr[i] với tất cả phần tử sau nó
  • Nếu tìm thấy phần tử nhỏ hơn, hoán đổi ngay lập tức
  • Sau vòng lặp trong, arr[i] là nhỏ nhất trong đoạn còn lại

Độ phức tạp

  • Thời gian: O(n²) - so sánh n(n-1)/2 lần
  • Không gian: O(1) - in-place
  • Không ổn định (unstable)

Lưu ý: Trong thực tế nên dùng Array.Sort() (QuickSort/Introsort) hiệu quả O(n log n).