三、冒泡排序
1.算法思想:通过相邻两元素的比较,将最大或最小值移到最前面(从最后一个元素开始比较)。
注:将最大或最小值移到最后面是从第一个元素开始比较。
2.代码实现:
import java.util.Arrays;
public class BubbleSort {
public static void bubbleSort(int[] array,int n){
int i,j;
boolean tag=true;//用来标识一次遍历中是否有元素的交换
for(i=0;tag && i<n-1;i++){
tag=false;
for(j=n-1;j>i;j--){
if(array[j]>array[j-1]){
//交换
int t=array[j];
array[j]=array[j-1];
array[j-1]=t;
tag=true;
}
}
if(!tag) break;
}
}
public static void main(String[] args){
int []array={4,7,3,2,8,6,9,5};
bubbleSort(array,array.length);
System.out.println(Arrays.toString(array));
}
}
3.时间复杂度:O(n^2)
4.空间复杂度:O(1)
5.一种稳定的排序算法