Bài 16: Thuật toán xếp Thuật toán xếp bọt - Sắp xếp bọt hoán đổi nhiều lần phần tử liền kề giá trị chúng không thứ tự - Mô tả ngôn ngữ tự nhiên: Với phần tử đầu tiên, thực vòng lặp: 1.1 So sánh hai phần tử đứng cạnh theo thứ tự từ cuối dãy lên phần tử 1.2 Nếu phần tử đứng sau nhỏ phần tử đứng trước đổi chỗ chúng cho 1.3 Cuối vòng lặp em nhận dãy số với phần tử nhỏ lên vị trí Với phần tử thứ hai, thực vòng lặp trên: 2.1 So sánh hai phần tử đứng cạnh theo thứ tự từ cuối dãy lên phần tử 2.2 Nếu phần tử đứng sau nhỏ phần tử đứng trước đổi chỗ chúng cho 2.3 Cuối vòng lặp em nhận dãy số với phần tử nhỏ thứ nhì lên vị trí thứ hai Tương tự với phần tử lại Kết thúc thu dãy số xếp theo thứ tự tăng dần - Ví dụ Đầu vào Xét vị trí đầu tiên, vịng lặp thứ nhất: Hình Vịng lặp thứ Xét vị trí thứ hai Hình Vịng lặp thứ hai Xét vị trí thứ Hình Vịng lặp thứ Sau vịng lặp thứ 3, khơng có hoán đổi nên kết thúc thuật toán Thuật toán xếp chọn - Thuật toán xếp chọn xét vị trí từ cuối dãy, so sánh trực tiếp phần tử vị trí xét với phần tử vị trí sau hốn đổi chưa thứ tự - Mơ tả ngôn ngữ tự nhiên: Yêu cầu: Sắp xếp dãy số theo thứ tự từ nhỏ đến lớn thuật toán xếp chọn Phần tử đầu tiên, thực vòng lặp sau: 1.1 So sánh phần tử lại với phần tử 1.2 Nếu phần tử xét nhỏ phần tử hốn đổi 1.3 Cuối vịng lặp, nhận dãy số với phần tử nhỏ vị trí Phần tử thứ hai, thực vòng lặp tương tự 2.1 So sánh phần tử lại (kể từ vị trí thứ 3) với phần tử thứ hai 2.2 Nếu phần tử xét nhỏ phần tử thứ hai hốn đổi 2.3 Cuối vịng lặp, nhận dãy số với phần tử nhỏ thứ nhì vị trí thứ hai Tương tự với phần tử lại Kết thúc thu dãy số xếp theo thứ tự tăng dần - Ví dụ: xếp dãy 3, 4, 1, 5, theo thứ tự tăng dần + Đầu vào dãy phần tử chưa xếp + Các vòng lặp: Đầu ra: Dãy phần tử xếp Chia toán thành toán nhỏ - Việc chia toán thành toán nhỏ hơn, đồng thời việc mơ tả thuật tốn dễ hiểu dễ thực