Ý tưởng
Xét một dãy gồm N phần tử.
Chọn phần tử nhỏ nhất x trong N phần tử ban đầu, đảo vị trí của x với phần tử đầu dãy để đưa x về đầu dãy.
Ta không quan tâm đến phần tử đầu dãy nữa, xem dãy bây giờ chỉ còn N-1 phần tử, bắt đầu từ vị trí thứ 2.
Lặp lại xử lí trên cho đến khi dãy hiện hành chỉ còn một phần tử.
Giải thuật
Bước 1: i = 1
Bước 2: Tìm phần tử a[min] nhỏ nhất trong dãy a[i..N].
Bước 3: Hoán vị a[min] và a[i]
Bước 4: Nếu i ≤ N – 1 thì i = i + 1. Lặp lại Bước 2
Ngược lại: Dừng. // N-1 phần tử đã nằm đúng vị trí.