Sắp xếp nổi bọt (Bubble Sort) là phương pháp
sắp xếp đơn giản, dễ hiểu thường được dạy trong khoa học máy tính.
Giải thuật bắt đầu từ đầu của tập dữ liệu. Nó so sánh hai phần tử
đầu, nếu phần tử đứng trước lớn hơn phần tử đứng sau thì đổi chổ
chúng cho nhau. Tiếp tục làm như vậy với cặp phần tử tiếp theo cho
đến cuối tập hợp dữ liệu. Sau đó nó quay lại với hai phần tử đầu
cho đến khi không còn cần phải đổi chổ nữa.
Ý tưởng chính của
thuật giải là 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, do vậy ở lần xử lý thứ
i sẽ 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
Mô tả thuật giải :
Bước 1 : i = 0; //
lần xử lý đầu tiên
Bước 2 : j = N-1;
//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
= j-1;
Bước 3 : 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: lặp lại bước 2
code
for (int write = 0; write < arr.Length; write++)
{
for (int sort = 0; sort < arr.Length - 1; sort++)
{
if (arr[sort] > arr[sort + 1])
{
temp = arr[sort + 1];
arr[sort + 1] = arr[sort];
arr[sort] = temp;
}
}
Console.Write("{0} ", arr[write]);
}

No comments:
Post a Comment