Bài giảng "Cấu trúc dữ liệu và giải thuật trong C++ - Bài 11: Sắp xếp" cung cấp cho người học các kiến thức: Các thuật toán sắp xếp nội với thời gian chạy O(n2), sắp xếp nổi bọt, minh họa thuật toán Bubble sort, . Mời các bạn cùng tham khảo. | Bài 11 Sắp xếp Sorting Sorting 1 Sorting Bài toán Input Dãy các phần tử và một thứ tự Dãy các phần tử thường được lưu bằng mảng. Output Dãy các phần tử được sắp theo thứ tự tăng hoặc giảm dần theo một hoặc một vài thuộc tính của nó các thuộc tính này gọi là thuộc tính khóa . Thuộc tính khóa được sắp xếp theo một hàm logic ví dụ Các thuật toán sắp xếp nội với thời gian chạy O n2 Nổi bọt Bubble sort Chèn Insertion sort Chọn Selection sort Sorting 3 Sắp xếp nổi bọt Bubble sort Ý tưởng Thực hiện chuyển dần các phân tử có giá trị khóa nhỏ về đầu dãy các phần tử có khóa lớn về cuối dãy. Sorting 4 Sắp xếp nổi bọt Bubble sort Giải thuật Đi từ cuối mảng về đầu mảng trong quá trình đi nếu phần tử ở dưới sau nhỏ hơn phần tử đứng ngay trên trước nó thì theo nguyên tắc của bọt khí phần tử nhẹ sẽ bị trồi lên phía trên phần tử nặng hai phần tử này sẽ được đổi chỗ cho nhau . Kết quả là phần tử nhỏ nhất nhẹ nhất sẽ được đưa lên trồi lên trên bề mặt đầu mảng rất nhanh. Sau mỗi lần đi chúng ta đưa được một phần tử trồi lên đúng chỗ. Do vậy sau N 1 lần đi thì tất cả các phần tử trong mảng A sẽ có thứ tự tăng. Sorting 5 Sắp xếp nổi bọt Bubble sort Ví dụ sắp xếp dãy sau theo thứ tự tăng dần 5 4 2 3 1 1 2 5 4 3 Bước 1 5 4 2 3 1 Bước 3 1 2 3 5 4 1 5 4 2 3 1 2 3 5 4 1 5 4 2 3 Bước 4 1 2 3 4 5 Bước 2 1 2 5 4 3 Sorting 6 Thuật toán Algorithm BubbleSort Array A n Input Mảng A có n phần tử Output Mảng A được sắp theo thứ tự tăng dần của khóa for i 0 to n-2 do for j n-1 downto i 1 do if A j .Key lt A j-1 .Key then swap A j-1 A j - Trong đó swap là thủ tục tráo đổi vị trí của hai phần tử void Swap object amp a object amp b object tg tg a a b b tg Sorting 7 Minh họa thuật toán Bubble sort 0 1 2 3 4 5 6 7 8 9 8 6 34 22 40 5 11 23 44 18 Temp Minh họa thuật toán Bubble sort 0 1 2 3 4 5 6 7 8 9 5 8 6 34 22 40 11 18 23 44 Temp Minh họa thuật toán Bubble sort 0 1 2 3 4 5 6 7 8 9 5 6 8 11 34 22 40 18 23 44 Temp Minh họa thuật toán Bubble sort 0 1 2 3 4 5 6 7 8 9 5 6 8 11 18 34 22 40 23 44 Temp Minh họa