
特性总结:
1. 冒泡排序是一种非常容易理解的排序 ‘
2. 时间复杂度:O(N^2)
3. 空间复杂度:O(1)
4. 稳定性:稳定
- public class BubbleSort {
- // 冒泡排序
- public static void bubbleSort(int[]arr){
- //i表示进行冒泡排序的边界,冒泡排序是将最大值慢慢移动到最后一个位置
- //当最大值到最后一个位置后,就不能被影响了,边界就要向前移动
- for(int i=arr.length-1;i>=1;i--){
- //当进行冒泡排序时,要是数据在本轮冒泡排序中已经没有发生数据交换了,就说明冒泡排序已经完成
- //用flag监测冒泡排序过程中有没有发送数据交换
- boolean flag=true;
- for(int j=0;j<=i-1;j++){
- if(arr[j]>arr[j+1]){
- swap(arr,j,j+1);
- //发生交换,说明数组没有序,改变flag的值
- flag=false;
- }
- }
- //没有发生交换,说明现在就能确定数组已经有序了
- if(flag==true){
- break;
- }
- }
- }
-
- public static void swap(int[] arr,int m,int n) {
- int tmp=arr[m];
- arr[m]=arr[n];
- arr[n]=tmp;
- }
- }