Breaking News
Loading...
Tuesday, July 9, 2013

Thuật toán BubbleSort

7/09/2013 11:06:00 PM

*Ý tưởng: 


Xuất phát từ cuối dãy, đổi chỗ các cặp phần tử kế cận để đưa phần tử nhỏ hơn trong cặp phần tử đó về vị trí đúng đầu 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.

Giải thuật

Bước 1:
  i = 1; 
Bước 2:
  j = N; 
  Trong khi (j > i) thực hiện:
  Nếu a[j]<a[j-1]: Hoán vị a[j] và a[j-1]
  j = j-1; 
Bước 3:
  i = i+1; 
  Nếu  i >N-1: Hết dãy. Dừng 
  Ngược lại: Lặp lại Bước 2.

Cài đặt

void BubleSort(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])
  Hoanvi(a[j],a[j-1]);
    }
}

0 comments:

Post a Comment

 
Toggle Footer