简介
冒泡排序应该是最简单的一种排序之一了,它的思想就是通过比较相邻的一对元素,如果前者比后者大就交换这两个数,就这样从第一对比较比较到最后一对就把最大的数换到最后去了,然后开始第二轮的交换,把第二大的数换到倒数第二个位置上,以此类推,最后完成排序。
复杂度
时间复杂度
1.这种算法最坏的情况就是对一个完全逆序的数组进行排序,这样每一次都要交换,所以交换次数为(n-1)+(n-2)+...+3+2+1=n(n-1)/2次
2.最好的情况当然是已经排好序的数组,交换次数为0次
3.所以这个算法的平均复杂度为O(n2),是一种稳定的排序方法
空间复杂度
这是一个时间换空间的算法,它的空间复杂度为O(1),因为不需要引入其他数据结构
java代码实现
public void bubbleSort(int[]a)
{
for(int i=0;i<a.length-1;i++)
{
for(int j=0;j<a.length-1-i;j++)
{
if(a[j]>a[j+1])
{
int temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
}
}
That's all.