Các Phƣơng pháp nổi bọt Bubble sort a Ý tƣởng

Một phần của tài liệu Giáo trình Nhập môn cấu trúc dữ liệu và giải thuật (Nghề: Thiết kế đồ hoạ - CĐ/TC) - Trường Cao đẳng nghề Đồng Tháp (Trang 42 - 43)

a. Ý tƣởng

Xuất phát từ cuối (đầu) dãy, đổi chỗ các cặp phần tử kế cận để đƣa phần tử nhỏ (lớn) hơn trong cặp phần tử đĩ về vị trí đúng đầu (cuối) dãy hiện hành, sau đĩ sẽ khơng xét đến nĩ ở bƣớc tiếp theo,

Ở lần xử lý thứ i cĩ vị trí đầu dãy là i

Lặp lại xử lý trên cho đến khi khơng cịn cặp phần tử nào để xét. b. Thuật tốn

//input: dãy (a, n)

//output: dãy (a, n) đã được sắp xếp

Bƣớc 1 : i = Vị trí đầu;

Bƣớc 2 : j = Vị trí cuối;//Duyệt từ cuối dãy ngược về vị trí i Trong khi (j > i) thực hiện:

Nếu a[j]<a[j-1]: a[j]a[j-1];//xét cặp phần tử kế cận j = Vị trí trƣớc(j);

Bƣớc 3 : i = Vị trí kế(i); // lần xử lý kế tiếp

Nếu i = Vị trí cuối: Dừng. // Hết dãy.

Ngƣợc lại : Lặp lại Bƣớc 2. Ví dụ minh họa A[]:

i=1; j=8->2 i=2; j=8->3 1 2 3 4 5 6 7 8 1 2 12 4 8 5 6 15 i=3; j=8->4 1 2 3 4 5 6 7 8 12 2 8 5 1 6 4 15 1 2 3 4 5 6 7 8 1 12 2 8 5 4 6 15

1 2 4 12 5 8 6 15i=4; j=8->5 i=4; j=8->5 1 2 3 4 5 6 7 8 1 2 4 5 12 6 8 15 i=5; j=8->6 1 2 3 4 5 6 7 8 1 2 4 5 6 12 8 15 i=6; j=8->7 1 2 3 4 5 6 7 8 1 2 4 5 6 8 12 15 i=7; j=8 1 2 3 4 5 6 7 8 1 2 4 5 6 8 12 15

c. Đánh giá giải thuật

Số lƣợng các phép so sánh xảy ra khơng phụ thuộc vào tình trạng của dãy số ban đầu Số lƣợng phép hốn vị thực hiện tùy thuộc vào kết quả so sánh

Khuyết điểm:

Khơng nhận diện đƣợc tình trạng dãy đã cĩ thứ tự hay cĩ thứ tự từng phần.

Các phần tử nhỏ đƣợc đƣa về vị trí đúng rất nhanh, trong khi các phần tử lớn lại đƣợc đƣa về vị trí đúng rất chậm.

Một phần của tài liệu Giáo trình Nhập môn cấu trúc dữ liệu và giải thuật (Nghề: Thiết kế đồ hoạ - CĐ/TC) - Trường Cao đẳng nghề Đồng Tháp (Trang 42 - 43)