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