冒泡排序
前言
冒泡排序是一种交换类型的排序,两两比较是否符合排序次序。不符合则交换直到整个数组满足次序。
思想
重复的走序列的每个元素,两两比较,顺序错误则交换。每次循环确定一个最大值或者最小值,然后开启下次循环,确定第2个元素、第3个元素...第n个... 直到整个数组有序

public static void bubbleSort(int []arr){
//外层循环控制循环总趟数,没次确定一个元素有序
for(int i=0;i<arr.length;i++){
//内层循环控制比较次数,已经有序的可以不需要在做比较所以总比较次数arr.length-i-1
for(int j=0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
//打印排序后的数组
for(int k=0;k<arr.length;k++){
System.out.println(arr[k]);
}
}
复杂度分析
算法性能

稳定性分析
冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,是不会再交换的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。