Files
Hui-s-notebook/logseq-java/pages/数组排序.md
2024-02-02 00:12:49 +08:00

1.8 KiB

  • 数组的反转
    • import java.util.Arrays;
      
      public class Int03 {
          public static void main(String[] args) {
              int[] nums = {12, 23, 1, 24, 2, 34, 51};
              for (int i = 0; i < nums.length / 2; i++) {
                  int j = nums[i];
                  nums[i] = nums[nums.length - 1 - i];
                  nums[nums.length - 1 - i] = j;
              }
              System.out.println(Arrays.toString(nums));
          }
      }
      
  • 冒泡排序 #Java面试 id:: 624d06d6-3d96-4b9b-a60c-cb3e3b285ad0
    • 两个数相互比较,每一轮确定一个最大值
    • 特点: 每一轮循环后,最大的一个数被交换到末尾,因此,下一轮循环就可以跑相互最后的数,没一轮循环都比上一轮循环的结束位置靠前一位
    • int[] ns = { 28, 12, 89, 73, 65, 18, 96, 50, 8, 36};
      System.out.println(Arrays.toString(ns));
      for (int i = 0; i < ns.length - 1; i++){
        for(int j = 0; j <ns.length - i - 1; j++){
          if(ns[j] > ns[j+1]){
            int tmp = ns[j];  //交换时要先定义一个临时变量
            ns[j] = ns[j+1];
            ns[j+1] = tmp;
          }
        }
      }
      System.out.println(Arrays.toString[ns])
      
  • 选择排序#Java面试
    • int[] nums = {12, 23, 1, 24, 2, 34, 51};
      for (int i = 0; i < nums.length - 1; i++) {
        int min = i;
        for (int j = i + 1; j < nums.length; j++) {
          if (nums[min] > nums[j]) {
            min = j;
          }
        }
        if (min != i) {
          int temp = nums[i];
          nums[i] = nums[min];
          nums[min] = temp;
        }
      }
      System.out.println(Arrays.toString(nums));
      
  • 使用[JDK]提供的Arrays.[sort]
    • import java.util.Arrays;
      
      nt[] ns = { 28, 12, 89, 73, 65, 18, 96, 50, 8, 36};
      Arrays.sort(ns);
      System.out.println(Arrays.toStrint(ns));