数组的基本算法

6.1冒泡排序

private static void bubbleSort(int[] arr) {
   // 外循环: 控制比较的轮数
   for (int i = 0; i < arr.length - 1; i++) {
       // 内循环: 控制比较的次数
       // -1避免索引越界, -i提高效率
       for (int j = 0; j < arr.length - 1 - i; j++) {
           // j = 0       1
           // j = 1       2
           // j = 2       3
           // j = 3       4
           if (arr[j] > arr[j + 1]) {
               int temp = arr[j];
               arr[j] = arr[j + 1];
               arr[j + 1] = temp;
          }
      }
  }
}

6.2选择排序

public static void selectSort(int[] arr) {
   for (int i = 0; i < arr.length - 1; i++) {
       for (int j = i + 1; j < arr.length; j++) {
           if (arr[i] > arr[j]) {
               int temp = arr[i];
               arr[i] = arr[j];
               arr[j] = temp;
          }
      }
  }
}

6.3基本查找

数组遍历

6.4二分查找(折半查找)

public static int binarySearch(int num, int[] arr) {
   int min = 0;
   int max = arr.length - 1;

   while (min <= max) {
       // 计算中间索引
       int mid = (min + max) / 2;
       // 比对
       if (num > arr[mid]) {
           min = mid + 1;
      } else if (num < arr[mid]) {
           max = mid - 1;
      } else {
           return mid;
      }
  }

   return -1;
}
posted @   灵泽pro  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示