Từ ý tưởng và mô tả của phần 2 – bây giờ chúng ta cùng nhau triển khai, chuyển chúng sang chương trình Java và thực thi xem kết quả có như mong đợi không nhé.
package selection.sort.algo;
public class SelectionSort {
void sort(int arr[]) {
int n = arr.length;
// Duyệt qua từng phần tử của mảng
for (int i = 0; i < n - 1; i++) {
// Tìm phần tử nhỏ nhất trong mảng chưa được sắp xếp
int min_idx = i;
for (int j = i + 1; j < n; j++)
if (arr[j] < arr[min_idx])
min_idx = j;
// Hoán đổi phần tử nhỏ nhất và phần tử đầu tiên
int temp = arr[min_idx];
arr[min_idx] = arr[i];
arr[i] = temp;
}
}
// Xuất mảng
void printArray(int arr[]) {
int n = arr.length;
for (int i = 0; i < n; ++i)
System.out.print(arr[i] + " ");
System.out.println();
}
public static void main(String args[]) {
SelectionSort ob = new SelectionSort();
int arr[] = { 64, 25, 12, 22, 11 };
System.out.println("Mảng ban đầu:");
ob.printArray(arr);
ob.sort(arr);
System.out.println("Mảng sau khi sắp xếp:");
ob.printArray(arr);
}
}
Khi chạy chương trình, ta có kết quả:
Mảng ban đầu:
64 25 12 22 11
Mảng sau khi sắp xếp:
11 12 22 25 64
Trong thực tế, chúng ta không cần tạo một danh sách mới cho các phần tử được sắp xếp, những gì chúng ta làm là coi phần ngoài cùng bên trái của danh sách là phân đoạn được sắp xếp.
Sau đó chúng ta tìm kiếm phần tử nhỏ nhất trong toàn bộ danh sách đã cho và hoán đổi nó với phần tử đầu tiên.
Thuật toán Selection Sort là một trong những thuật toán đơn giản nhất, dễ học và cũng dễ vận dụng vào các dự án thực tế.
Tuy nhiên đừng nghĩ rằng nó đơn giản mà bỏ qua trong quá trình học lập trình, hãy tìm hiểu và tập luyện thật tốt các thức cơ bản này để kết hợp chúng lại vào các thuật toán phức tạp và đồ sộ hơn trong môi trường dự án lớn.
> Tại KHÓA HỌC LẬP TRÌNH (Full Stack) của NIIT - ICT Hà Nội bạn không chỉ được chú trọng về thuật toán mà còn được học "Cách học thuật toán", cách xử lý vấn đề tốt hơn trong lập trình.
Bạn am hiểu thuật toán càng nhiều sẽ tăng giá trị của bạn trong mắt nhà tuyển dụng – đặc biệt là các bạn lần đầu đi phỏng vấn xin việc.
Hãy cân nhắc và chuẩn bị thật kỹ nhé.
---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học làm Lập trình viên. Hành động ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0914939543
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python