Tinh thoi gian thuc hien chuong trinh sau;
void Bubble (int a[], int n)
{
int i, j, temp;
{1} for (i=0; i<n-1; i++)
{2} for (j=n-1; j>i; j--)
{3} if (a[j-1]>a[j])
{
{4} temp:=a[j-1];
{5} a[j-1]:=a[j];
{6} a[j]:=temp;
}
}
GIẢI
Cả 3 lệnh đổi chỗ (4)(5)(6) tốn O(1) thời gian
Vòng lăp (2) thực hiện việc đổi chỗ n-1-(i+1)+1=n-i-1 trong trường hợp xấu nhất do đó đoạn (2)và (6) tốn O((n-i+1).1)=O(n-i+1)
Vòng lặp (1) lặp n lần. Vậy độ phức tạp của giải thuật là:
(n-1)(n-1) –n(n+1)/2= O(n2)