首页 > 编程语言 >数组的基本算法

数组的基本算法

时间:2024-03-21 14:46:07浏览次数:18  
标签:基本 arr temp min int mid 算法 数组 length

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

标签:基本,arr,temp,min,int,mid,算法,数组,length
From: https://www.cnblogs.com/linzel/p/18087340

相关文章

  • 代码随想录算法训练营day29 | leetcode 491. 非递减子序列、46. 全排列、47. 全排列 I
    目录题目链接:491.非递减子序列-中等题目链接:46.全排列-中等题目链接:47.全排列II-中等题目链接:491.非递减子序列-中等题目描述:给你一个整数数组nums,找出并返回所有该数组中不同的递增子序列,递增子序列中至少有两个元素。你可以按任意顺序返回答案。数组中可能含有重......
  • 算法模板 v1.10.2.20240320
    算法模板v1.1.1.20240115:之前历史版本已不可寻,创建第一份算法模板。v1.2.1.20240116:删除“编译”-“手动开栈”;删除“编译”-“手动开O优化”;修改“编译”-“CF模板”;删除“读写”;删除“图论”-“欧拉图”-“混合图”;删除“图论”-“可达性统计”;删除“数据类型”-“高精类”。......
  • 灰狼优化算法(MOGWO)
    灰狼优化算法(MOGWO)摘要固定大小的外部档案用来保存帕累托优化解在多目标搜索空间中,这个档案被用来定义狼群社会等级和捕猎行为这个算法在10个多目标测试集进行测试,并与MOEA/D和MOPSO进行对比引言将多个目标集成一个单一的目标两个缺点:一个均匀分布的权重不能保证生成......
  • 蓝牙HFP协议推荐的语音丢包补偿算法浮点实现的定点化
    最近在做蓝牙的宽带语音通话。相对于蓝牙窄带语音,主要变化是把采样率从8k变到16k,以及编解码器从CVSD变成mSBC(modifiedSBC,改进的SBC)等。蓝牙语音通话相关的HFP(HandFreeProfile)强烈建议在宽带语音通话时要用上语音丢包补偿(packetlostconcealment,PLC)算法来保证丢包时的语音质量,......
  • 在VMware虚拟机搭建Fedora系统及其基本配置
    Fedora是一个基于Linux的操作系统,由Fedora项目社区开发,并且得到了RedHat的支持。它是一个完全自由的、开放源代码的软件,旨在推动自由和开源软件的发展。1. 电脑环境win+r,打开cmd,输入dxdiag,查看电脑配置实验1要求2. 虚拟机-vmware3.Linux系统-fedora3.1......
  • React函数组件Hook
    问题:相对于类组件,函数组件的编码更简单,效率也更高,但函数组件不能有state(旧版)解决:React16.8版本设计了一套新的语法来让函数组件也可以有stateHook是React16.8的新增特性。它可以让你在不编写class的情况下使用state以及其他的React特性Hook也叫......
  • StringGrid1做数据控件的基本常用操作
    procedureTForm1.StringGrid1SelectCell(Sender:TObject;ACol,ARow:Integer;varCanSelect:Boolean);varR:TRect;org:TPoint;beginifARow>0thenbegin//标题行不能修改ifnotSQLResutIsEmptythenbeginwithSenderasTStringGriddoif......
  • TSINGSEE青犀智慧充电桩消防安全烟雾火焰AI算法识别预警方案
    一、方案背景随着AI人工智能、大数据、云计算等技术快速发展与落地,视频智能分析技术在智慧充电桩场景中的应用也越来越广泛。这种技术能够为充电桩站点提供全方位的监控和管理,提高运营效率,保障充电站设备的安全和稳定运行。通过TSINGSEE青犀&触角云新能源汽车智慧充电桩综合管理......
  • 军事演习算法
    题目描述军事演习中分为红蓝两方,我方为蓝方。地图简化为n行m列的二维矩阵形式,红方基地在地图中使用#表示,蓝方基地在地图中使用*表示,中立区域使用.表示。下图为地图示例:.........###.......................###.......................###....****.....................
  • 如何理解递归算法?
     首先说说递归思想,我认为可以从以下三点进行把握:将大问题分解为有限个子问题;每个子问题的求解方式相同;存在已知的最小子问题,作为“归”的条件。 一句话解释:递归思想是将大问题分解为数个求解方式相同的子问题,且该问题具有已知的最小子问题。 另外,递归是分为两个......