Hi rảnh ngồi copy paste code mô tả thuật toán selection sort, hoạt động trên c# winform
private async Task SelectionSort()
{
for (int i = 0; i < array.Length - 1; i++)
{
int minIndex = i;
DrawArray(i, minIndex, -1); // Vẽ mảng, đánh dấu vị trí bắt đầu kiểm tra
await Task.Delay(300); // Tạm dừng để quan sát
for (int j = i + 1; j < array.Length; j++)
{
DrawArray(i, minIndex, j); // Vẽ mảng, đánh dấu cột đang được kiểm tra
await Task.Delay(300); // Tạm dừng để quan sát
if (array[j] < array[minIndex])
{
minIndex = j;
DrawArray(i, minIndex, -1); // Cập nhật màu khi tìm thấy giá trị nhỏ nhất mới
await Task.Delay(300); // Tạm dừng để quan sát
}
}
// Đổi chỗ phần tử nhỏ nhất với phần tử tại vị trí i
int temp = array[i];
array[i] = array[minIndex];
array[minIndex] = temp;
DrawArray(i, minIndex); // Vẽ lại mảng sau mỗi lần đổi chỗ
await Task.Delay(300); // Tạm dừng để thấy quá trình sắp xếp
}
}
Bạn vào trang này để download mã nguồn về nghich chơi nhé