×

Sắp xếp mảng số nguyên bằng Selection Sort trong C#

Để viết thuật toán Selection Sort để sắp xếp một mảng số nguyên trong C#, bạn có thể làm theo các bước sau:

  1. Khởi tạo mảng: Tạo một mảng số nguyên cần được sắp xếp.
  2. Thuật toán Selection Sort: Thực hiện các bước của thuật toán Selection Sort để sắp xếp mảng.

Thuật toán Selection Sort

Selection Sort là một thuật toán sắp xếp đơn giản, hoạt động bằng cách tìm phần tử nhỏ nhất trong phần còn lại của mảng và hoán đổi nó với phần tử đầu tiên của phần chưa được sắp xếp. Quá trình này được lặp lại cho đến khi mảng được sắp xếp.

Code C# cho Selection Sort

using System;

public class SelectionSortExample
{
    // Phương thức để thực hiện Selection Sort
    public static void SelectionSort(int[] array)
    {
        int n = array.Length;

        for (int i = 0; i < n - 1; i++)
        {
            // Tìm phần tử nhỏ nhất trong phần còn lại của mảng
            int minIndex = i;
            for (int j = i + 1; j < n; j++)
            {
                if (array[j] < array[minIndex])
                {
                    minIndex = j;
                }
            }

            // Hoán đổi phần tử nhỏ nhất với phần tử đầu tiên của phần chưa được sắp xếp
            int temp = array[minIndex];
            array[minIndex] = array[i];
            array[i] = temp;
        }
    }

    // Phương thức để in mảng ra console
    public static void PrintArray(int[] array)
    {
        foreach (int item in array)
        {
            Console.Write(item + " ");
        }
        Console.WriteLine();
    }

    public static void Main(string[] args)
    {
        // Tạo một mảng số nguyên
        int[] numbers = { 64, 34, 25, 12, 22, 11, 90 };

        Console.WriteLine("Mảng trước khi sắp xếp:");
        PrintArray(numbers);

        // Gọi phương thức SelectionSort để sắp xếp mảng
        SelectionSort(numbers);

        Console.WriteLine("Mảng sau khi sắp xếp:");
        PrintArray(numbers);
    }
}

Giải thích

  1. Khởi tạo mảng:

    int[] numbers = { 64, 34, 25, 12, 22, 11, 90 };
    
  2. Phương thức SelectionSort:

    • n là độ dài của mảng.
    • Vòng lặp ngoài lặp qua từng phần tử của mảng, xác định vị trí i là phần đầu của phần chưa được sắp xếp.
    • minIndex được khởi tạo là i.
    • Vòng lặp trong lặp qua các phần tử còn lại trong mảng để tìm phần tử nhỏ nhất.
    • Nếu phần tử tại vị trí j nhỏ hơn phần tử tại vị trí minIndex, cập nhật minIndexj.
    • Sau khi tìm được phần tử nhỏ nhất trong phần chưa được sắp xếp, hoán đổi nó với phần tử tại vị trí i.
  3. Phương thức PrintArray:

    • In từng phần tử của mảng ra console.
  4. Trong phương thức Main:

    • Mảng ban đầu được in ra.
    • Gọi phương thức SelectionSort để sắp xếp mảng.
    • Mảng sau khi sắp xếp được in ra.

Kết quả khi chạy chương trình

Khi chạy chương trình, bạn sẽ thấy mảng được in ra trước và sau khi sắp xếp:

Mảng trước khi sắp xếp:
64 34 25 12 22 11 90 
Mảng sau khi sắp xếp:
11 12 22 25 34 64 90 

Comments