BubbleSort

Cài đặt Bubble sort

void BubbleSort(int a[], int n)

{

                int i, j;

                for(i =0; i < n-1; i++)

                                for(j=n-1; j >i; j--)

                                                if (a[j] < a[j-1])

                                                                Swap(a[j], a[j-1]);

}

BubbleSort có các khuyết điểm sau: 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.

Các bước tiến hành

B1: i=1;                            // lần xử lý đầu tiên

B2: j=n;            // 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]:  Hoán đổi a[j] và a[j-1]

                                j = j -1;

B3: i = i+1;       // lần xử lý kế tiếp

                Nếu i > n-1: Hết dãy Þ Dừng

                Ngược lại: quay lại B2             

Bạn đang đọc truyện trên: AzTruyen.Top

Tags: