冒泡算法
1、首先我们将交换方法提取出来
public static void swap(int[] arr,int i,int j){
//交换算法有两种种写法,分别如下
//1普通写法
int temp = arr[i];
arr[j] = arr[i];
arr[j] = temp;
//2通过异或写法,相信大家都知道异或的规则,真^假=真 假^真=真 假^假=假 真^真=假 只要两个条件同时为真或假,其结果都为假
arr[i] ^=arr[j];//等价于 arr[i] = arr[i]^arr[j];
arr[j] ^=arr[i];//等价于 arr[j] = arr[j]^arr[i];
arr[i] ^=arr[j];//等价于 arr[i] = arr[i]^arr[j];
}
2冒泡算法
public static void bubbleSort(int[] arr){
int len = arr.length;
for(int i = 0 ; i <len-1 ; i++){
for(int j = 0 ; j < len-1-i ; j++){
if(arr[j] > arr[j+1]){
//调用上面抽离的交换方法
swap(arr , j , j+1);
}
}
}
}
3、测试方法代码
public static void main(String[] args) {
int[] arr = {1,4,9,7,10,2};
for (int i = 0; i < arr.length; i++) {//打印出排序之前的数组
System.out.println(arr[i]);
}
System.out.println("------");
bubbleSort(arr); //调用排序方法
for (int i = 0; i < arr.length; i++) {//打印排序后的数组
System.out.println(arr[i]);
}
}