1.1. Thuật toán sắp xếp chèn
– Thuật toán sắp xếp chèn: chỉ số i chạy từ 1 đến n-1. Mỗi vòng “chèn” phần tử A[i] vào vị trí đúng của dãy con đã sắp xếp A[0] đến A[i-1].
– “Chèn” A[i] vào vị trí đúng trong dãy con A[0] đến A[i-1] bằng cách “nhấc” A[i] lên, chuyển các phần tử bên trái A[i] lớn hơn sang phải, và đặt A[i] vào vị trí đúng.
– Sau n-1 bước lặp, dãy được sắp xếp xong.
– Thuật toán sắp xếp chèn có thể mô tả bằng hàm insertionSort(A) như sau:
1.2. Thuật toán sắp xếp chọn
– Thuật toán sắp xếp chọn: chỉ số i chạy từ 0 đến n-2.
– Tại mỗi bước lặp, tìm phần tử nhỏ nhất trong dãy A[i], A[i+1], A[n-1] và đổi chỗ phần tử nhỏ nhất này với A[i].
– Mô tả thuật toán chọn như sau:
– Thuật toán sắp xếp chọn có thể mô tả bằng hàm insertionSort(A) như sau:
1.3. Thuật toán sắp xếp nổi bọt
– Thuật toán sắp xếp nổi bọt lấy ý tưởng từ hiện tượng “nổi bọt” của không khí dưới nước.
– Ý tưởng của thuật toán nổi bọt: liên tục đổi chỗ hai phần tử cạnh nhau nếu chúng chưa được sắp thứ tự đúng.
– Chỉ số j chạy từ 0 đến n – 2 và kiểm tra hai phần tử liền nhau A[j], A[j + 1], nếu chưa sắp thứ tự đúng thì đổi chỗ.
– Sau mỗi vòng lặp, phần tử lớn nhất được chuyển về cuối dãy.
– Không cần đủ n – 1 bước lặp, với chỉ số i, vòng lặp ở dòng 2 chỉ cần n-1-i bước lặp.
– Thuật toán sắp xếp chọn có thể mô tả bằng hàm BubbleSort(A) như sau: