算法:1.依次和相邻的数进行比较,如果头一个数更大,则替换,直到最大的值放在末尾
时间复杂度:O(n^2)
空间复杂度:O(1)
稳定性:不稳定
package sort;
/**
* 冒泡算法
*
* 遍历排序元素,找到最大值,并放到最未位置
*
* 空间复杂度0(1), 时间复杂度0(n2)
*
* 思考: 什么时候时间复杂度是 n
*
*/
public class BubbleSort {
public static void main(String[] args) {
int[] a = {3,1,9,8,2,6,5,4,7};
sort(a);
print(a);
}
static void sort(int[] a){
for(int i =a.length-1;i>0;i--){
findMaxAndReplaceTo(a,8);
print(a);
}
}
static void findMaxAndReplaceTo(int[] a, int n){
for(int i=0;i < n; i++){
if(a[i] >a[i+1]) swap(a,i,i+1);
}
}
static void swap(int[] a, int i ,int j){
int temp = a[i];
a[i]= a[j];
a[j] = temp;
}
public static void print(int[] a){
for(int i =0;i < a.length; i ++){
System.out.print(a[i] + " ");
}
System.out.println();
}
}
来源:CSDN
作者:BorisCao
链接:https://blog.csdn.net/BorisCao/article/details/104699436