算法原理:
从数组的最后一个元素开始,依次和前一个元素进行比较,如果比前一个元素小,则交换位置,再继续和前一个元素进行比较。一轮后最小的元素在数组的首位,下一轮选出第二大的元素,直到数组中所有元素都有序。
算法为代码:
BUBBLESORT(A)1. for i=1 to length[A]2. do for j=length[A] downto i+13. do if A[j] < A[j-1]4. then exchange A[j] - A[j-1]
算法性能分析:
时间复杂度分析:平均情况和最坏情况均为O(n^2)
空间复杂度分析:O(1)
稳定性:稳定
Java版本代码实现:
private void bubblesort(int[] A)
{
for(int i=0;i<A.length;i++)
{
for(int j=A.length-1;j>0;j--)
{
if(A[j]<A[j-1])
{
int temp = A[j];
A[j] = A[j-1];
A[j-1] = temp;
}
}
}
}