Thuật toán sắp xếp Selection Sort trong Java

Lập trình Java

Thuật toán sắp xếp Selection Sort là một thuật toán đơn giản trong việc sắp xếp các phần tử trong một mảng. Thuật toán này chọn ra phần tử nhỏ nhất trong mảng và đổi chỗ nó với phần tử đầu tiên. Tiếp theo, thuật toán chọn ra phần tử nhỏ nhất trong mảng con bao gồm các phần tử từ vị trí thứ hai đến cuối mảng và đổi chỗ nó với phần tử thứ hai trong mảng. Quá trình này được lặp lại cho đến khi tất cả các phần tử trong mảng được sắp xếp.

Dưới đây là mã nguồn Java của thuật toán Selection Sort:

public static void selectionSort(int[] arr) {
    int n = arr.length;
    for (int i = 0; i < n-1; i++) {
        int minIndex = i;
        for (int j = i+1; j < n; j++) {
            if (arr[j] < arr[minIndex]) {
                minIndex = j;
            }
        }
        int temp = arr[minIndex];
        arr[minIndex] = arr[i];
        arr[i] = temp;
    }
}

Trong đoạn mã trên, biến n là độ dài của mảng, vòng lặp bên ngoài (vòng lặp đầu tiên) duyệt qua từng phần tử của mảng (trừ phần tử cuối cùng), và vòng lặp bên trong (vòng lặp thứ hai) tìm kiếm phần tử nhỏ nhất trong mảng con bao gồm các phần tử từ vị trí thứ i+1 đến cuối mảng. Nếu phần tử tìm được nhỏ hơn phần tử hiện tại tại vị trí i, thì vị trí của phần tử nhỏ nhất được lưu vào biến minIndex. Sau khi tìm được phần tử nhỏ nhất trong mảng con, phần tử này sẽ được đổi chỗ với phần tử hiện tại tại vị trí i.

Để sử dụng thuật toán Selection Sort trong Java, ta chỉ cần gọi phương thức selectionSort() và truyền vào một mảng cần sắp xếp. Ví dụ:

int[] arr = {64, 25, 12, 22, 11};
selectionSort(arr);
System.out.println(Arrays.toString(arr));

Kết quả khi thực thi đoạn mã trên sẽ là: [11, 12, 22, 25, 64].

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *