Mô Phỏng Thuật Toán Sắp Xếp Chọn Selection Sort

Trực quan hóa cấu trúc dữ liệu và tiến trình xử lý thuật toán

Mức độ phức tạp trung bình: $O(n^2)$
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 đó.