java常用算法总结

冒泡算法

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]);
		}
	}

猜你喜欢

转载自blog.csdn.net/hypmxy/article/details/82772063
今日推荐