1.排序思路
冒泡排序也称起泡排序,是一种典型的交换排序的方法,其基本思想是:通过无序区中的相邻元素关键字的比较和位置的交换,使得关键字最小的元素如气泡一般逐渐“上浮”直至“水面”。整个算法是从最下面的元素开始,对每两个相邻的关键字进行比较,并且让关键字较小的元素换至关键字较大的元素之上,使得经过一趟冒泡排序之后,关键字最小的元素到达最上端。接着,再在剩下的元素中找关键字次小的元素,并把它换到第二个位置上。以此类推,直到所有元素都有序为止。
2.Java实现
public static void bubbleSort(int[] a){
int n = a.length;
int tmp = 0;
for(int i = 0;i < n-1;i++){
for(int j = n-1;j>i;j--){
if(a[j]<a[j-1]){
tmp=a[j];
a[j]=a[j-1];
a[j-1]=tmp;
}
}
}
}
3.算法分析
时间复杂度:最好情况O(n),最坏情况O(n2),平均情况O(n2)。
空间复杂度:O(1)。
冒泡排序是稳定的。