Day07 数组复制、二维数组、排序算法、二分法

1. 数组

1.1 传值和传引用

1.2 数组复制

插入式复制

1.3 二维数组

二维数组可以模拟表

1.3.1 声明

1.3.2 存储

1.3.3 使用

1.3.4 动态声明一维元素个数不同

1.4 Scanner

1.5 交换变量的值

1.6 排序

让数组中数据按照某种规则进行排序,比如从大到小,从小到大

1.6.1 冒泡排序

1.6.2 选择排序

1.6.3 排序API

1.7 二分法查找

public static int binarySearch(int[] arr, int target) {

                  // 1 确定起始索引,结束索引,中间索引

                  int startIndex = 0;

                  int endIndex = arr.length;

                  int m = (startIndex + endIndex) / 2;

                  // 2 使用目标数据和中间数据进行比较

                  // 终止条件 : 不存在该数据,当起始值大于中间数据时,说明不存在,可以相等,相等说明还有一个数据没有比较

                  while (startIndex <= endIndex) {

                          // 3 第一种 : 中间值就是目标数据,直接返回中间索引 m 即可

                          if (arr[m] == target) {

                                   return m;

                          }

                          // 4 第二种 : 中间值小于目标数据,结束值不变,起始值=中间值+1

                          if (arr[m]<target) {

                                   startIndex=m+1;

                          }

                          // 5 第三种 : 中间值大于目标数据,起始值不变,结束值=中间值-1

                          if (arr[m]>target) {

                                   endIndex=m-1;

                          }

                          // 重新生成中间值

                          m = (startIndex + endIndex) / 2;

                  }

                  // 能执行到这里

                  // 说明不存在该数据,当起始值大于中间数据时,说明不存在,可以相等,相等说明还有一个数据没有比较

                  return -1;

         }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值