/*
冒泡排序(Bubble Sort)是一种简单直观的排序算法。
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。
走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
时间复杂度是O(n*n)
*/
public static void bubbleSort(int[] arr){
int temp;
for(int i=0;i<arr.length-1;i++){
for(int j=1;j<arr.length-1-i;j++){
if(arr[i]>arr[i+1]){
temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
}
}
//优化的目的:数组有可能在中间某一过程就已经有序,无序再进行后面操作。
public class Demo02 {
public static void main(String[] args) {
int[] arr={2,4,2,1,45,7};
int[] res=bubbleSort(arr);
System.out.println(Arrays.toString(res));
}
public static int[] bubbleSort(int[] arr){
int temp;
boolean flag=false;
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
flag=true;
}
}
if(flag==false){
break;
}else{
flag=false;
}
}
return arr;
}
}