请解释冒泡排序。它不工作?

Please explain buuble sort. Its Not working?

void bubble(int a[], int n) {
  for(i=0;i<n;i++) 
  {
    for(j=i+1;j<n;j++) 
    {
      if(a[j]<a[i]) 
      {
        temp=a[i+1];
        a[i+1]=a[j];
        a[j]=temp;
      }
    }
  }
}

不工作?请任何人帮助解决这个问题。其实我是初学者

冒泡排序的工作原理是重复交换相邻元素,直到它们不符合预期顺序为止。之所以称为冒泡排序,是因为数组元素的运动就像水中气泡的运动一样。水中的气泡上升到表面;同样,冒泡排序中的数组元素在每次迭代中移动到末尾。

使用此代码:

void bubble(int a[], int n) 
{
    for(i=0;i<n;i++) 
    {
        for(j=i+1;j<n;j++) 
        {
            if(a[j]<a[i]) 
            {
                 temp=a[i];
                 a[i]=a[j];
                 a[j]=temp;
            }
        }
    }
}

更多信息click here.