重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成
(1)比较两个相邻的元素。如果第一个比第二个大,就交换他们两个
(2)对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。此时,最后一个元素是最大的数
(3)对除了最后一个元素以外的n-1个元素重复以上的步骤
(4)重复(1)(2)(3)步骤,直到没有任何一对元素需要比较
性能 | 性能指标 |
---|---|
最坏时间复杂度 | O ( n 2 ) O(n^2) O(n2) |
最好时间复杂度 | O ( n ) O(n) O(n) |
平均时间复杂度 | O ( n 2 ) O(n^2) O(n2) |
空间复杂度 | O ( 1 ) O(1) O(1) |
稳定性 | 稳定 |
//顺序冒泡排序
public void bubbleSort(int[] data){
int temp;
for(int i = 0;i < data.length;i++){
for(int j = 0;j<data.length-i-1;j++){
if(data[j]>data[j+1])//逆序改为"<"号即可。
{
temp = data[j+1];
data[j+1]=data[j];
data[j]=temp;
}
}
}