Chờ khởi tạo
So sánh:
0
Hoán đổi:
0
Kích thước mảng:
15
Chưa sắp xếp
Đã sắp xếp xong
Phần tử đang so sánh (j)
Phần tử nhỏ nhất hiện tại (min)
Biên ngoài (i)
Bảng điều khiển mô phỏng
Tốc độ mô phỏng
500 ms
Số lượng phần tử
15
Giải thuật C++
Selection Sort
1int n = arr.size();
2for (int i = 1; i < n; i++) {
3int min_idx = i;
4for (int j = i + 1; j <= n; j++) {
5if (arr[j] < arr[min_idx]) {
6min_idx = j;
7}
8}
9if (min_idx != i) {
10swap(arr[i], arr[min_idx]);
11}
12}
Thông số thuật toán
Độ phức tạp tốt nhất (Best)
$O(n^2)$
Độ phức tạp trung bình (Average)
$O(n^2)$
Độ phức tạp tệ nhất (Worst)
$O(n^2)$
Bộ nhớ phụ trợ (Space)
$O(1)$
Tính ổn định (Stable)
Không (Unstable)
Phương pháp (Method)
Lựa chọn trực tiếp
Cơ chế hoạt động:
Chia mảng thành 2 phần: phần đã sắp xếp (bên trái, màu xanh lục) và phần chưa sắp xếp (bên phải). Thuật toán liên tục tìm kiếm phần tử nhỏ nhất từ phần chưa sắp xếp và đưa nó về vị trí đầu tiên của phân vùng đó.