数组是存放在连续内存空间上相同类型的数据集合。
在c++中二维数组是连续分布的。验证代码如下
#include <iostream>
using namespace std;
void test_arr();
int main()
{
test_arr();
}
void test_arr()
{
int array[2][3] =
{
{1, 2, 3},
{4, 5, 6}
};
for (unsigned i = 0; i < 2; i++)
{
for (unsigned j = 0; j < 3; j++)
{
cout << &array[i][j] << endl;
}
}
}
二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
两种写法
二分查找主要就是左右两个值的选取级变化,以及中间的计算。
第一种 right = arrray.size();
循环结束条件 left < right 不去等号因为left = right 是数组没有意义的
左值计算 left = medium + 1;
右值计算 right = medium 因为循环条件没有等于号 所以取值范围也应该是左闭右开的
第二种 right = array.size() -1
左值计算 left = medium + 1;
<