冒泡排序:

 1 //冒泡排序
 2 //时间复杂度为O(N^2),空间复杂度为O(N)
 3 public class BubbleSort {
 4     public static void bubbleSort(int[] arr) {
 5         if (arr.length == 0 || arr.length == 1) {
 6             return;
 7         } else {
 8 //            随着每轮比较的进行,都有一个大数沉到后面排好序,因此外层的循环长度应该递减
 9             for (int end = arr.length - 1; end > 0; end--) {
10                 for (int i = 0; i < end; i++) {
11                     if (arr[i] > arr[i + 1]) {
12                         swap(arr, i, i + 1);
13                     }
14                 }
15             }
16         }
17 
18     }
19 
20     static void swap(int[] arr, int i, int j) {
21 //        不利用第三个变量交换两变量的位置。1.a和同一个数异或运算两次得到a本身 2.异或运算满足交换律
22         arr[j] = arr[j] ^ arr[i];
23         arr[i] = arr[j] ^ arr[i];
24         arr[j] = arr[j] ^ arr[i];
25     }
26 
27     public static void main(String[] args) {
28         int[] a = {2, 1, 7, 10, 3, 9, 5, 4, 6, 8};
29         bubbleSort(a);
30         for(int i:a)
31             System.out.print(i+",");
32     }
33 }
冒泡排序

相关文章:

  • 2021-09-06
  • 2021-06-20
  • 2022-12-23
  • 2021-08-04
  • 2021-12-14
  • 2021-07-31
  • 2021-07-26
猜你喜欢
  • 2021-08-04
  • 2022-12-23
  • 2021-07-10
  • 2021-12-19
  • 2021-11-10
  • 2021-06-04
  • 2022-02-18
相关资源
相似解决方案