import java.util.Arrays;
/**
* @Auther: 么么
* @Date: 2023/5/8 - 05 - 08 - 22:16
* @Description: PACKAGE_NAME
* @version: 1.0
*/
//冒泡排序
public class test02 {
//这是一个main方法,是程序的入口:
public static void main(String[] args) {
int[] arr={4,2,3,7,5,1,9,8};
int[] sort = sort(arr);
System.out.println(Arrays.toString(arr));
}
//数组为空 或者 长度为 1 则直接返回该数组
public static int[] sort(int [] arr){
if(arr==null||arr.length<2){
return arr;
}
for(int i =0;i<arr.length-1;i++){
//设置flag值,当一趟下来没有交换任何数,说明数组已经有序了,将flag设为false
boolean flag = true;
for(int j=1;j<arr.length-i;j++){
if(arr[j-1]>arr[j]){
swap(arr,j-1,j);
flag=false;
}
}
if(flag){
return arr;
}
}
return arr;
}
//异或运算--i不能等于j 及作与运算的俩个数值可以相同,但不能为相同的地址
//不明白的:见我的文章 --》异或运算
public static void swap(int arr[],int i,int j){
arr[i] = arr[i]^arr[j];
arr[j] = arr[i]^arr[j];
arr[i] = arr[i]^arr[j];
}
}
